JoinCommand and ArenaListCommand somewhat done.
This commit is contained in:
@@ -232,6 +232,8 @@ public abstract class Arena
|
|||||||
|
|
||||||
public abstract boolean inLobby(Player p);
|
public abstract boolean inLobby(Player p);
|
||||||
|
|
||||||
|
public abstract boolean isEnabled();
|
||||||
|
|
||||||
public abstract boolean isRunning();
|
public abstract boolean isRunning();
|
||||||
|
|
||||||
public abstract boolean isPvpEnabled();
|
public abstract boolean isPvpEnabled();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.garbagemule.MobArena;
|
package com.garbagemule.MobArena;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -51,6 +52,8 @@ public abstract class ArenaMaster //implements Master
|
|||||||
|
|
||||||
public abstract List<Arena> getPermittedArenas(Player p);
|
public abstract List<Arena> getPermittedArenas(Player p);
|
||||||
|
|
||||||
|
public abstract List<Arena> getEnabledAndPermittedArenas(Player p);
|
||||||
|
|
||||||
public abstract Arena getArenaAtLocation(Location loc);
|
public abstract Arena getArenaAtLocation(Location loc);
|
||||||
|
|
||||||
public abstract List<Arena> getArenasInWorld(World world);
|
public abstract List<Arena> getArenasInWorld(World world);
|
||||||
@@ -75,6 +78,8 @@ public abstract class ArenaMaster //implements Master
|
|||||||
|
|
||||||
public abstract Arena getArenaWithName(String configName);
|
public abstract Arena getArenaWithName(String configName);
|
||||||
|
|
||||||
|
public abstract Arena getArenaWithName(Collection<Arena> arenas, String configName);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*/////////////////////////////////////////////////////////////////////////
|
/*/////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.garbagemule.MobArena;
|
package com.garbagemule.MobArena;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -10,37 +11,13 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
//import org.bukkit.util.config.Configuration;
|
|
||||||
|
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
|
|
||||||
//import com.garbagemule.ArenaPlugin.Master;
|
|
||||||
|
|
||||||
public class ArenaMasterStandard extends ArenaMaster
|
public class ArenaMasterStandard extends ArenaMaster
|
||||||
{
|
{
|
||||||
private MobArena plugin;
|
private MobArena plugin;
|
||||||
//private Configuration config;
|
|
||||||
private Config config;
|
private Config config;
|
||||||
//protected Arena selectedArena;
|
|
||||||
|
|
||||||
// Settings
|
|
||||||
//protected boolean enabled, updateNotify;
|
|
||||||
|
|
||||||
// Classes
|
|
||||||
//protected Set<String> classes;
|
|
||||||
//protected Map<String,List<ItemStack>> classItems, classArmor;
|
|
||||||
//protected Map<String,Map<String,Boolean>> classPerms;
|
|
||||||
//protected Map<Integer,Map<Player,List<ItemStack>>> classBonuses;
|
|
||||||
//protected Map<Player,Arena> arenaMap;
|
|
||||||
|
|
||||||
// Location map
|
|
||||||
//protected Map<Player,Location> locations = new HashMap<Player,Location>();
|
|
||||||
|
|
||||||
// Arena list
|
|
||||||
//protected List<Arena> arenas;
|
|
||||||
|
|
||||||
// Listeners
|
|
||||||
//protected Set<MobArenaListener> listeners = new HashSet<MobArenaListener>();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -81,6 +58,15 @@ public class ArenaMasterStandard extends ArenaMaster
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Arena> getEnabledAndPermittedArenas(Player p)
|
||||||
|
{
|
||||||
|
List<Arena> result = new LinkedList<Arena>();
|
||||||
|
for (Arena arena : arenas)
|
||||||
|
if (arena.enabled && plugin.has(p, "mobarena.arenas." + arena.configName()))
|
||||||
|
result.add(arena);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public Arena getArenaAtLocation(Location loc)
|
public Arena getArenaAtLocation(Location loc)
|
||||||
{
|
{
|
||||||
for (Arena arena : arenas)
|
for (Arena arena : arenas)
|
||||||
@@ -163,6 +149,11 @@ public class ArenaMasterStandard extends ArenaMaster
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Arena getArenaWithName(String configName)
|
public Arena getArenaWithName(String configName)
|
||||||
|
{
|
||||||
|
return getArenaWithName(this.arenas, configName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Arena getArenaWithName(Collection<Arena> arenas, String configName)
|
||||||
{
|
{
|
||||||
for (Arena arena : arenas)
|
for (Arena arena : arenas)
|
||||||
if (arena.configName().equals(configName))
|
if (arena.configName().equals(configName))
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ import org.bukkit.inventory.PlayerInventory;
|
|||||||
import org.bukkit.permissions.PermissionAttachment;
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
//import org.bukkit.util.config.Configuration;
|
//import org.bukkit.util.config.Configuration;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
|
||||||
import com.garbagemule.MobArena.leaderboards.Leaderboard;
|
import com.garbagemule.MobArena.leaderboards.Leaderboard;
|
||||||
import com.garbagemule.MobArena.repairable.Repairable;
|
import com.garbagemule.MobArena.repairable.Repairable;
|
||||||
import com.garbagemule.MobArena.repairable.RepairableComparator;
|
import com.garbagemule.MobArena.repairable.RepairableComparator;
|
||||||
@@ -65,65 +64,6 @@ import com.garbagemule.MobArena.waves.Wave.WaveBranch;
|
|||||||
public class ArenaStandard extends Arena
|
public class ArenaStandard extends Arena
|
||||||
{
|
{
|
||||||
private MobArena plugin;
|
private MobArena plugin;
|
||||||
/*
|
|
||||||
// Setup fields
|
|
||||||
protected String name;
|
|
||||||
protected World world;
|
|
||||||
protected boolean enabled, protect, running, setup, lobbySetup, autoEquip, forceRestore, softRestore, softRestoreDrops, emptyInvJoin, emptyInvSpec, pvp, monsterInfight, allowWarp;
|
|
||||||
|
|
||||||
protected boolean edit, waveClear, detCreepers, detDamage, lightning, hellhounds, specOnDeath, shareInArena, spoutSelect;
|
|
||||||
protected Location p1, p2, l1, l2, arenaLoc, lobbyLoc, spectatorLoc;
|
|
||||||
protected Map<String,Location> spawnpoints, spawnpointsBoss, containers;
|
|
||||||
protected String logging;
|
|
||||||
|
|
||||||
// Wave/reward/entryfee fields
|
|
||||||
protected int spawnTaskId, sheepTaskId, waveDelay, waveInterval, specialModulo, spawnMonstersInt, maxIdleTime, finalWave;
|
|
||||||
protected MASpawnThread spawnThread;
|
|
||||||
protected Map<Integer,List<ItemStack>> everyWaveMap, afterWaveMap;
|
|
||||||
protected Map<Player,String> classMap;
|
|
||||||
protected Map<String,List<ItemStack>> classItems, classArmor;
|
|
||||||
protected Map<String,Map<String,Boolean>> classPerms;
|
|
||||||
protected Map<Player,PermissionAttachment> attachments;
|
|
||||||
protected List<ItemStack> entryFee;
|
|
||||||
|
|
||||||
// Player sets
|
|
||||||
protected Set<Player> arenaPlayers, lobbyPlayers, readyPlayers, specPlayers;
|
|
||||||
|
|
||||||
// Wave stuff
|
|
||||||
protected TreeSet<Wave> singleWaves, singleWavesInstance;
|
|
||||||
protected TreeSet<Wave> recurrentWaves;
|
|
||||||
protected BossWave bossWave;
|
|
||||||
protected Wave currentWave;
|
|
||||||
|
|
||||||
// Arena sets/maps
|
|
||||||
protected Set<Player> hasPaid, rewardedPlayers, notifyPlayers, randoms;
|
|
||||||
protected Set<LivingEntity> monsters, explodingSheep, plaguedPigs, madCows;
|
|
||||||
protected Set<Block> blocks;
|
|
||||||
protected Set<Wolf> pets;
|
|
||||||
protected Map<Player,Integer> petMap;
|
|
||||||
protected LinkedList<Repairable> repairables, containables;
|
|
||||||
|
|
||||||
// Spawn overriding
|
|
||||||
protected int spawnMonsters;
|
|
||||||
protected boolean allowMonsters, allowAnimals;
|
|
||||||
|
|
||||||
// Other settings
|
|
||||||
protected int minPlayers, maxPlayers, joinDistance;
|
|
||||||
protected List<String> classes = new LinkedList<String>();
|
|
||||||
protected Map<Player,Location> locations = new HashMap<Player,Location>();
|
|
||||||
protected Map<Player,Integer> healthMap = new HashMap<Player,Integer>();
|
|
||||||
protected Map<Player,Integer> hungerMap = new HashMap<Player,Integer>();
|
|
||||||
protected Map<Player,GameMode> modeMap = new HashMap<Player,GameMode>();
|
|
||||||
|
|
||||||
// Logging
|
|
||||||
protected ArenaLog log;
|
|
||||||
protected Map<Player,ArenaPlayer> arenaPlayerMap;
|
|
||||||
protected Leaderboard leaderboard;
|
|
||||||
|
|
||||||
protected MAListener eventListener;
|
|
||||||
|
|
||||||
protected PriorityBlockingQueue<Repairable> repairQueue;
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary constructor. Requires a name and a world.
|
* Primary constructor. Requires a name and a world.
|
||||||
@@ -1121,6 +1061,10 @@ public class ArenaStandard extends Arena
|
|||||||
return lobbyPlayers.contains(p);
|
return lobbyPlayers.contains(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isRunning()
|
public boolean isRunning()
|
||||||
{
|
{
|
||||||
return running;
|
return running;
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
|
||||||
|
|
||||||
public class MACommands implements CommandExecutor
|
public class MACommands implements CommandExecutor
|
||||||
{
|
{
|
||||||
public static List<String> ALLOWED_COMMANDS = new LinkedList<String>();
|
public static List<String> ALLOWED_COMMANDS = new LinkedList<String>();
|
||||||
@@ -187,7 +185,7 @@ public class MACommands implements CommandExecutor
|
|||||||
|
|
||||||
MAUtils.tellPlayer(p, Msg.JOIN_PLAYER_JOINED);
|
MAUtils.tellPlayer(p, Msg.JOIN_PLAYER_JOINED);
|
||||||
if (!arena.entryFee.isEmpty())
|
if (!arena.entryFee.isEmpty())
|
||||||
MAUtils.tellPlayer(p, Msg.JOIN_FEE_PAID.get(MAUtils.listToString(arena.entryFee, plugin)));
|
MAUtils.tellPlayer(p, Msg.JOIN_FEE_PAID.toString(MAUtils.listToString(arena.entryFee, plugin)));
|
||||||
if (arena.hasPaid.contains(p))
|
if (arena.hasPaid.contains(p))
|
||||||
arena.hasPaid.remove(p);
|
arena.hasPaid.remove(p);
|
||||||
|
|
||||||
@@ -277,7 +275,7 @@ public class MACommands implements CommandExecutor
|
|||||||
if (base.equals("arenas"))
|
if (base.equals("arenas"))
|
||||||
{
|
{
|
||||||
String list = MAUtils.listToString(player ? am.getPermittedArenas(p) : am.arenas, plugin);
|
String list = MAUtils.listToString(player ? am.getPermittedArenas(p) : am.arenas, plugin);
|
||||||
MAUtils.tellPlayer(sender, Msg.MISC_LIST_ARENAS.get(list));
|
MAUtils.tellPlayer(sender, Msg.MISC_LIST_ARENAS.toString(list));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +294,7 @@ public class MACommands implements CommandExecutor
|
|||||||
}
|
}
|
||||||
|
|
||||||
String list = MAUtils.listToString(arena.getLivingPlayers(), plugin);
|
String list = MAUtils.listToString(arena.getLivingPlayers(), plugin);
|
||||||
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.get(list));
|
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.toString(list));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -305,7 +303,7 @@ public class MACommands implements CommandExecutor
|
|||||||
for (Arena arena : am.arenas)
|
for (Arena arena : am.arenas)
|
||||||
players.addAll(arena.getLivingPlayers());
|
players.addAll(arena.getLivingPlayers());
|
||||||
buffy.append(MAUtils.listToString(players, plugin));
|
buffy.append(MAUtils.listToString(players, plugin));
|
||||||
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.get(buffy.toString()));
|
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.toString(buffy.toString()));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -341,7 +339,7 @@ public class MACommands implements CommandExecutor
|
|||||||
}
|
}
|
||||||
|
|
||||||
String list = MAUtils.listToString(arena.getNonreadyPlayers(), plugin);
|
String list = MAUtils.listToString(arena.getNonreadyPlayers(), plugin);
|
||||||
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.get(list));
|
MAUtils.tellPlayer(sender, Msg.MISC_LIST_PLAYERS.toString(list));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ import org.bukkit.material.Bed;
|
|||||||
import org.bukkit.material.Door;
|
import org.bukkit.material.Door;
|
||||||
import org.bukkit.material.Redstone;
|
import org.bukkit.material.Redstone;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
|
||||||
import com.garbagemule.MobArena.leaderboards.Leaderboard;
|
import com.garbagemule.MobArena.leaderboards.Leaderboard;
|
||||||
import com.garbagemule.MobArena.repairable.*;
|
import com.garbagemule.MobArena.repairable.*;
|
||||||
|
|
||||||
|
|||||||
@@ -7,198 +7,60 @@ import java.io.FileInputStream;
|
|||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
|
|
||||||
public class MAMessages
|
public class MAMessages
|
||||||
{
|
{
|
||||||
public static enum Msg
|
public static void init(MobArena plugin) {
|
||||||
{
|
// Grab the file
|
||||||
ARENA_START("Let the slaughter begin!", "Arena started!", Material.REDSTONE_TORCH_ON),
|
File msgFile = new File(MobArena.dir, "anouncements.properties");
|
||||||
ARENA_END("Arena finished.", "Arena finished.", Material.REDSTONE_TORCH_OFF),
|
|
||||||
ARENA_DOES_NOT_EXIST("That arena does not exist. Type /ma arenas for a list.", "Can't find arena."),
|
|
||||||
JOIN_NOT_ENABLED("MobArena is not enabled.", "MobArena disabled.", Material.REDSTONE_TORCH_OFF),
|
|
||||||
JOIN_IN_OTHER_ARENA("You are already in an arena! Leave that one first.", "In another arena."),
|
|
||||||
JOIN_ARENA_NOT_ENABLED("This arena is not enabled.", "Arena disabled.", Material.REDSTONE_TORCH_OFF),
|
|
||||||
JOIN_ARENA_NOT_SETUP("This arena has not been set up yet.", "Arena not set up.", Material.REDSTONE_TORCH_OFF),
|
|
||||||
JOIN_ARENA_EDIT_MODE("This arena is in edit mode.", "Arena in edit mode.", Material.IRON_SPADE),
|
|
||||||
JOIN_ARENA_PERMISSION("You don't have permission to join this arena.", "No permission!", Material.FENCE),
|
|
||||||
JOIN_FEE_REQUIRED("Insufficient funds. Price: %", "Price: %", Material.DIAMOND),
|
|
||||||
JOIN_FEE_PAID("Price to join was: %", "Paid: %", Material.DIAMOND),
|
|
||||||
JOIN_ARENA_IS_RUNNING("This arena is in already progress.", "Already running!", Material.GOLD_RECORD),
|
|
||||||
JOIN_ALREADY_PLAYING("You are already playing!", "Already playing!", Material.GOLD_RECORD),
|
|
||||||
JOIN_ARG_NEEDED("You must specify an arena. Type /ma arenas for a list."),
|
|
||||||
JOIN_TOO_FAR("You are too far away from the arena to join/spectate.", "Too far from arena.", Material.COMPASS),
|
|
||||||
JOIN_EMPTY_INV("You must empty your inventory to join the arena.", "Empty your inventory.", Material.CHEST),
|
|
||||||
JOIN_PLAYER_LIMIT_REACHED("The player limit of this arena has been reached.", "No spots left.", Material.MILK_BUCKET),
|
|
||||||
JOIN_STORE_INV_FAIL("Failed to store inventory. Try again."),
|
|
||||||
JOIN_EXISTING_INV_RESTORED("Your old inventory items have been restored."),
|
|
||||||
JOIN_PLAYER_JOINED("You joined the arena. Have fun!", "Joined arena.", Material.IRON_SWORD),
|
|
||||||
LEAVE_NOT_PLAYING("You are not in the arena.", "Not in arena."),
|
|
||||||
LEAVE_PLAYER_LEFT("You left the arena. Thanks for playing!", "Left arena.", Material.WOOD_DOOR),
|
|
||||||
PLAYER_DIED("% died!", "% died!", Material.BONE),
|
|
||||||
SPEC_PLAYER_SPECTATE("Enjoy the show!", "Enjoy the show!"),
|
|
||||||
SPEC_NOT_RUNNING("This arena isn't running.", "Arena not running.", Material.REDSTONE_TORCH_OFF),
|
|
||||||
SPEC_ARG_NEEDED("You must specify an arena. Type /ma arenas for a list.", "Arena name required."),
|
|
||||||
SPEC_EMPTY_INV("Empty your inventory first!", "Empty your inventory.", Material.CHEST),
|
|
||||||
SPEC_ALREADY_PLAYING("Can't spectate when in the arena!", "Already playing!"),
|
|
||||||
NOT_READY_PLAYERS("Not ready: %"),
|
|
||||||
FORCE_START_RUNNING("Arena has already started."),
|
|
||||||
FORCE_START_NOT_READY("Can't force start, no players are ready."),
|
|
||||||
FORCE_START_STARTED("Forced arena start."),
|
|
||||||
FORCE_END_EMPTY("No one is in the arena."),
|
|
||||||
FORCE_END_ENDED("Forced arena end."),
|
|
||||||
FORCE_END_IDLE("You weren't quick enough!"),
|
|
||||||
REWARDS_GIVE("Here are all of your rewards!"),
|
|
||||||
LOBBY_DROP_ITEM("No sharing allowed at this time!", "Can't drop items here."),
|
|
||||||
LOBBY_PLAYER_READY("You have been flagged as ready!", "Flagged as ready!"),
|
|
||||||
LOBBY_PICK_CLASS("You must first pick a class!", "Pick a class first!"),
|
|
||||||
LOBBY_NOT_ENOUGH_PLAYERS("Not enough players to start. Need at least % players.", "Need more players."),
|
|
||||||
LOBBY_RIGHT_CLICK("Punch the sign. Don't right-click.", "Punch the sign."),
|
|
||||||
LOBBY_CLASS_PICKED("You have chosen % as your class!", "%"),
|
|
||||||
LOBBY_CLASS_RANDOM("You will get a random class on arena start."),
|
|
||||||
LOBBY_CLASS_PERMISSION("You don't have permission to use this class!", "No permission!", Material.FENCE),
|
|
||||||
WARP_TO_ARENA("Can't warp to the arena during battle!"),
|
|
||||||
WARP_FROM_ARENA("Warping not allowed in the arena!"),
|
|
||||||
WAVE_DEFAULT("Wave #%!", "Wave #%!", Material.YELLOW_FLOWER),
|
|
||||||
WAVE_SPECIAL("Wave #%! [SPECIAL]", "Wave #%! [SPECIAL]", Material.RED_ROSE),
|
|
||||||
WAVE_SWARM("Wave #%! [SWARM]", "Wave #%! [SWARM]", Material.LONG_GRASS),
|
|
||||||
WAVE_BOSS("Wave #%! [BOSS]", "Wave #%! [BOSS]", Material.FIRE),
|
|
||||||
WAVE_BOSS_ABILITY("Boss used ability: %!", "Boss: %", Material.FIRE),
|
|
||||||
WAVE_BOSS_LOW_HEALTH("Boss is almost dead!", "Boss almost dead!", Material.FIRE),
|
|
||||||
WAVE_REWARD("You just earned a reward: %", "Reward: %"),
|
|
||||||
MISC_LIST_PLAYERS("Live players: %"),
|
|
||||||
MISC_LIST_ARENAS("Available arenas: %"),
|
|
||||||
MISC_COMMAND_NOT_ALLOWED("You can't use that command in the arena!"),
|
|
||||||
MISC_NO_ACCESS("You don't have access to this command."),
|
|
||||||
MISC_NONE("<none>");
|
|
||||||
|
|
||||||
private String msg, spoutMsg;
|
// If it couldn't be loaded for some reason
|
||||||
private Material logo;
|
if (!load(msgFile))
|
||||||
|
return;
|
||||||
|
|
||||||
private Msg(String msg)
|
// Otherwise, start parsing!
|
||||||
{
|
parseFile(msgFile);
|
||||||
this(msg, null);
|
}
|
||||||
|
|
||||||
|
private static boolean load(File file) {
|
||||||
|
// If the file exists, continue on!
|
||||||
|
if (file.exists()) {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Msg(String msg, String spoutMsg)
|
// Otherwise, create it, and populate it with the defaults.
|
||||||
{
|
try {
|
||||||
this(msg, spoutMsg, null);
|
file.createNewFile();
|
||||||
}
|
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
|
||||||
|
|
||||||
private Msg(String msg, String spoutMsg, Material logo)
|
|
||||||
{
|
|
||||||
this.msg = msg;
|
|
||||||
this.spoutMsg = spoutMsg;
|
|
||||||
this.logo = logo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String get()
|
|
||||||
{
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String get(String s)
|
|
||||||
{
|
|
||||||
return (s != null) ? msg.replace("%", s) : msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSpout(String s)
|
|
||||||
{
|
|
||||||
if (spoutMsg == null)
|
|
||||||
return get(s);
|
|
||||||
|
|
||||||
return (s != null) ? spoutMsg.replace("%", s) : spoutMsg;
|
for (Msg m : Msg.values()) {
|
||||||
}
|
if (m.hasSpoutMsg()) {
|
||||||
|
bw.write(m.name() + "=" + m + "|" + m.toSpoutString());
|
||||||
public void set(String msg)
|
} else {
|
||||||
{
|
bw.write(m.name() + "=" + m);
|
||||||
this.msg = msg;
|
}
|
||||||
}
|
bw.newLine();
|
||||||
|
}
|
||||||
public void setSpout(String spoutMsg)
|
bw.close();
|
||||||
{
|
|
||||||
this.spoutMsg = spoutMsg;
|
|
||||||
|
|
||||||
if (spoutMsg == null)
|
return true;
|
||||||
logo = null;
|
|
||||||
}
|
}
|
||||||
|
catch (Exception e) {
|
||||||
public boolean hasSpoutMsg()
|
MobArena.warning("Couldn't initialize announcements-file. Using defaults.");
|
||||||
{
|
return false;
|
||||||
return spoutMsg != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Material getLogo()
|
|
||||||
{
|
|
||||||
return logo == null ? Material.SLIME_BALL : logo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String get(Msg m)
|
|
||||||
{
|
|
||||||
return m.msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String get(Msg m, String s)
|
|
||||||
{
|
|
||||||
return m.msg.replace("%", s);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void set(Msg m, String msg)
|
|
||||||
{
|
|
||||||
m.msg = msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return msg;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private static void parseFile(File file) {
|
||||||
* Initializes the msgMap by reading from the announcements-file.
|
try {
|
||||||
*/
|
FileInputStream fis = new FileInputStream(file);
|
||||||
public static void init(MobArena plugin)
|
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
|
||||||
{
|
BufferedReader br = new BufferedReader(isr);
|
||||||
// Grab the announcements-file.
|
|
||||||
File msgFile = new File(MobArena.dir, "announcements.properties");
|
|
||||||
|
|
||||||
// If the file doesn't exist, create it and use defaults.
|
|
||||||
if (!msgFile.exists())
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
msgFile.createNewFile();
|
|
||||||
BufferedWriter bw = new BufferedWriter(new FileWriter(msgFile));
|
|
||||||
|
|
||||||
for (Msg m : Msg.values())
|
|
||||||
{
|
|
||||||
if (m.hasSpoutMsg())
|
|
||||||
bw.write(m.name() + "=" + m.msg + "|" + m.spoutMsg);
|
|
||||||
else
|
|
||||||
bw.write(m.name() + "=" + m.msg);
|
|
||||||
|
|
||||||
bw.newLine();
|
|
||||||
}
|
|
||||||
|
|
||||||
bw.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MobArena.warning("Couldn't initialize announcements-file. Using defaults.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise, read the file's contents.
|
|
||||||
try
|
|
||||||
{
|
|
||||||
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(msgFile), "UTF-8"));
|
|
||||||
|
|
||||||
// Check for BOM character.
|
// Check for BOM character.
|
||||||
br.mark(1); int bom = br.read();
|
br.mark(1);
|
||||||
if (bom != 65279) br.reset();
|
int bom = br.read();
|
||||||
|
if (bom != 65279)
|
||||||
|
br.reset();
|
||||||
|
|
||||||
String s;
|
String s;
|
||||||
while ((s = br.readLine()) != null)
|
while ((s = br.readLine()) != null)
|
||||||
@@ -206,8 +68,7 @@ public class MAMessages
|
|||||||
|
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e) {
|
||||||
{
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
MobArena.warning("Problem with announcements-file. Using defaults.");
|
MobArena.warning("Problem with announcements-file. Using defaults.");
|
||||||
return;
|
return;
|
||||||
@@ -218,15 +79,13 @@ public class MAMessages
|
|||||||
* Helper-method for parsing the strings from the
|
* Helper-method for parsing the strings from the
|
||||||
* announcements-file.
|
* announcements-file.
|
||||||
*/
|
*/
|
||||||
private static void process(String s)
|
private static void process(String s) {
|
||||||
{
|
// If the line ends with = or |, just add a space
|
||||||
// If the line ends with =, just add a space
|
|
||||||
if (s.endsWith("=") || s.endsWith("|")) s += " ";
|
if (s.endsWith("=") || s.endsWith("|")) s += " ";
|
||||||
|
|
||||||
// Split the string by the equals-sign.
|
// Split the string by the equals-sign.
|
||||||
String[] split = s.split("=");
|
String[] split = s.split("=");
|
||||||
if (split.length != 2)
|
if (split.length != 2) {
|
||||||
{
|
|
||||||
MobArena.warning("Couldn't parse \"" + s + "\". Check announcements-file.");
|
MobArena.warning("Couldn't parse \"" + s + "\". Check announcements-file.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -239,14 +98,12 @@ public class MAMessages
|
|||||||
String val = vals.length == 2 ? vals[0] : split[1];
|
String val = vals.length == 2 ? vals[0] : split[1];
|
||||||
String spoutVal = vals.length == 2 ? vals[1] : null;
|
String spoutVal = vals.length == 2 ? vals[1] : null;
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Msg msg = Msg.valueOf(key);
|
Msg msg = Msg.valueOf(key);
|
||||||
msg.set(val);
|
msg.set(val);
|
||||||
msg.setSpout(spoutVal);
|
msg.setSpout(spoutVal);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e) {
|
||||||
{
|
|
||||||
MobArena.warning(key + " is not a valid key. Check announcements-file.");
|
MobArena.warning(key + " is not a valid key. Check announcements-file.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import org.bukkit.entity.Creature;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
|
||||||
import com.garbagemule.MobArena.util.WaveUtils;
|
import com.garbagemule.MobArena.util.WaveUtils;
|
||||||
import com.garbagemule.MobArena.waves.Wave;
|
import com.garbagemule.MobArena.waves.Wave;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ import org.bukkit.inventory.PlayerInventory;
|
|||||||
import org.getspout.spoutapi.SpoutManager;
|
import org.getspout.spoutapi.SpoutManager;
|
||||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
import com.garbagemule.MobArena.util.EntityPosition;
|
import com.garbagemule.MobArena.util.EntityPosition;
|
||||||
import com.garbagemule.MobArena.util.InventoryItem;
|
import com.garbagemule.MobArena.util.InventoryItem;
|
||||||
@@ -977,7 +976,7 @@ public class MAUtils
|
|||||||
if (msg.hasSpoutMsg() && sp != null && sp.isSpoutCraftEnabled())
|
if (msg.hasSpoutMsg() && sp != null && sp.isSpoutCraftEnabled())
|
||||||
{
|
{
|
||||||
// Grab the message text.
|
// Grab the message text.
|
||||||
String text = msg.getSpout(s);
|
String text = msg.toSpoutString(s);
|
||||||
|
|
||||||
// If more than 26 characters, truncate.
|
// If more than 26 characters, truncate.
|
||||||
if (text.length() > 26)
|
if (text.length() > 26)
|
||||||
@@ -991,7 +990,7 @@ public class MAUtils
|
|||||||
sp.sendNotification("MobArena", text, logo, (short) 0, 2000);
|
sp.sendNotification("MobArena", text, logo, (short) 0, 2000);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else return tellPlayer(p, msg.get(s));
|
else return tellPlayer(p, msg.toString(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean tellSpoutPlayer(Player p, Msg msg, Material logo)
|
public static boolean tellSpoutPlayer(Player p, Msg msg, Material logo)
|
||||||
@@ -1025,7 +1024,7 @@ public class MAUtils
|
|||||||
if (spout && p instanceof Player)
|
if (spout && p instanceof Player)
|
||||||
return tellSpoutPlayer((Player) p, msg, s, logo);
|
return tellSpoutPlayer((Player) p, msg, s, logo);
|
||||||
|
|
||||||
return tellPlayer(p, msg.get(s));
|
return tellPlayer(p, msg.toString(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean tellPlayer(CommandSender p, Msg msg, String s, Material logo)
|
public static boolean tellPlayer(CommandSender p, Msg msg, String s, Material logo)
|
||||||
@@ -1168,7 +1167,7 @@ public class MAUtils
|
|||||||
if (list == null || list.isEmpty())
|
if (list == null || list.isEmpty())
|
||||||
{
|
{
|
||||||
if (none)
|
if (none)
|
||||||
return Msg.MISC_NONE.get();
|
return Msg.MISC_NONE.toString();
|
||||||
else
|
else
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.io.File;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.Event.Priority;
|
import org.bukkit.event.Event.Priority;
|
||||||
@@ -39,9 +41,6 @@ public class MobArena extends JavaPlugin implements MobArenaPlugin
|
|||||||
// Spout stuff
|
// Spout stuff
|
||||||
public static boolean hasSpout;
|
public static boolean hasSpout;
|
||||||
|
|
||||||
// Heroes stuff
|
|
||||||
//private HeroManager heroManager = null;
|
|
||||||
|
|
||||||
// Global variables
|
// Global variables
|
||||||
public static PluginDescriptionFile desc;
|
public static PluginDescriptionFile desc;
|
||||||
public static File dir, arenaDir;
|
public static File dir, arenaDir;
|
||||||
@@ -69,7 +68,6 @@ public class MobArena extends JavaPlugin implements MobArenaPlugin
|
|||||||
// Set up soft dependencies
|
// Set up soft dependencies
|
||||||
setupRegister();
|
setupRegister();
|
||||||
setupSpout();
|
setupSpout();
|
||||||
//setupHeroes();
|
|
||||||
setupMagicSpells();
|
setupMagicSpells();
|
||||||
|
|
||||||
// Set up the ArenaMaster and the announcements
|
// Set up the ArenaMaster and the announcements
|
||||||
@@ -162,6 +160,19 @@ public class MobArena extends JavaPlugin implements MobArenaPlugin
|
|||||||
public static void warning(String msg) { Bukkit.getServer().getLogger().warning("[MobArena] " + msg); }
|
public static void warning(String msg) { Bukkit.getServer().getLogger().warning("[MobArena] " + msg); }
|
||||||
public static void error(String msg) { Bukkit.getServer().getLogger().severe("[MobArena] " + msg); }
|
public static void error(String msg) { Bukkit.getServer().getLogger().severe("[MobArena] " + msg); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tell(CommandSender sender, String msg) {
|
||||||
|
if (sender == null || msg.equals("") || msg.equals(" "))
|
||||||
|
return;
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "[MobArena] " + ChatColor.WHITE + msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tell(CommandSender sender, Msg msg) {
|
||||||
|
tell(sender, msg.toString());
|
||||||
|
}
|
||||||
|
|
||||||
private void setupRegister()
|
private void setupRegister()
|
||||||
{
|
{
|
||||||
Methods.setMethod(getServer().getPluginManager());
|
Methods.setMethod(getServer().getPluginManager());
|
||||||
@@ -184,14 +195,6 @@ public class MobArena extends JavaPlugin implements MobArenaPlugin
|
|||||||
Spouty.registerEvents(this);
|
Spouty.registerEvents(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*private void setupHeroes()
|
|
||||||
{
|
|
||||||
Plugin heroes = this.getServer().getPluginManager().getPlugin("Heroes");
|
|
||||||
if (heroes == null) return;
|
|
||||||
|
|
||||||
heroManager = ((Heroes) heroes).getHeroManager();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private void setupMagicSpells()
|
private void setupMagicSpells()
|
||||||
{
|
{
|
||||||
Plugin spells = this.getServer().getPluginManager().getPlugin("MagicSpells");
|
Plugin spells = this.getServer().getPluginManager().getPlugin("MagicSpells");
|
||||||
@@ -208,11 +211,6 @@ public class MobArena extends JavaPlugin implements MobArenaPlugin
|
|||||||
@Override
|
@Override
|
||||||
public ArenaMaster getArenaMaster() { return am; }
|
public ArenaMaster getArenaMaster() { return am; }
|
||||||
|
|
||||||
/*public HeroManager getHeroManager()
|
|
||||||
{
|
|
||||||
return heroManager;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private String getHeader()
|
private String getHeader()
|
||||||
{
|
{
|
||||||
String sep = System.getProperty("line.separator");
|
String sep = System.getProperty("line.separator");
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
package com.garbagemule.MobArena;
|
package com.garbagemule.MobArena;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
public interface MobArenaPlugin
|
public interface MobArenaPlugin
|
||||||
{
|
{
|
||||||
public ArenaMaster getArenaMaster();
|
public ArenaMaster getArenaMaster();
|
||||||
|
|
||||||
|
public void tell(CommandSender sender, String msg);
|
||||||
|
|
||||||
|
public void tell(CommandSender sender, Msg msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,167 @@
|
|||||||
|
package com.garbagemule.MobArena;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
public enum Msg
|
||||||
|
{
|
||||||
|
ARENA_START("Let the slaughter begin!", "Arena started!", Material.REDSTONE_TORCH_ON),
|
||||||
|
ARENA_END("Arena finished.", "Arena finished.", Material.REDSTONE_TORCH_OFF),
|
||||||
|
ARENA_DOES_NOT_EXIST("That arena does not exist. Type /ma arenas for a list.", "Can't find arena."),
|
||||||
|
JOIN_NOT_ENABLED("MobArena is not enabled.", "MobArena disabled.", Material.REDSTONE_TORCH_OFF),
|
||||||
|
JOIN_IN_OTHER_ARENA("You are already in an arena! Leave that one first.", "In another arena."),
|
||||||
|
JOIN_ARENA_NOT_ENABLED("This arena is not enabled.", "Arena disabled.", Material.REDSTONE_TORCH_OFF),
|
||||||
|
JOIN_ARENA_NOT_SETUP("This arena has not been set up yet.", "Arena not set up.", Material.REDSTONE_TORCH_OFF),
|
||||||
|
JOIN_ARENA_EDIT_MODE("This arena is in edit mode.", "Arena in edit mode.", Material.IRON_SPADE),
|
||||||
|
JOIN_ARENA_PERMISSION("You don't have permission to join this arena.", "No permission!", Material.FENCE),
|
||||||
|
JOIN_FEE_REQUIRED("Insufficient funds. Price: %", "Price: %", Material.DIAMOND),
|
||||||
|
JOIN_FEE_PAID("Price to join was: %", "Paid: %", Material.DIAMOND),
|
||||||
|
JOIN_ARENA_IS_RUNNING("This arena is in already progress.", "Already running!", Material.GOLD_RECORD),
|
||||||
|
JOIN_ALREADY_PLAYING("You are already playing!", "Already playing!", Material.GOLD_RECORD),
|
||||||
|
JOIN_ARG_NEEDED("You must specify an arena. Type /ma arenas for a list."),
|
||||||
|
JOIN_TOO_FAR("You are too far away from the arena to join/spectate.", "Too far from arena.", Material.COMPASS),
|
||||||
|
JOIN_EMPTY_INV("You must empty your inventory to join the arena.", "Empty your inventory.", Material.CHEST),
|
||||||
|
JOIN_PLAYER_LIMIT_REACHED("The player limit of this arena has been reached.", "No spots left.", Material.MILK_BUCKET),
|
||||||
|
JOIN_STORE_INV_FAIL("Failed to store inventory. Try again."),
|
||||||
|
JOIN_EXISTING_INV_RESTORED("Your old inventory items have been restored."),
|
||||||
|
JOIN_PLAYER_JOINED("You joined the arena. Have fun!", "Joined arena.", Material.IRON_SWORD),
|
||||||
|
LEAVE_NOT_PLAYING("You are not in the arena.", "Not in arena."),
|
||||||
|
LEAVE_PLAYER_LEFT("You left the arena. Thanks for playing!", "Left arena.", Material.WOOD_DOOR),
|
||||||
|
PLAYER_DIED("% died!", "% died!", Material.BONE),
|
||||||
|
SPEC_PLAYER_SPECTATE("Enjoy the show!", "Enjoy the show!"),
|
||||||
|
SPEC_NOT_RUNNING("This arena isn't running.", "Arena not running.", Material.REDSTONE_TORCH_OFF),
|
||||||
|
SPEC_ARG_NEEDED("You must specify an arena. Type /ma arenas for a list.", "Arena name required."),
|
||||||
|
SPEC_EMPTY_INV("Empty your inventory first!", "Empty your inventory.", Material.CHEST),
|
||||||
|
SPEC_ALREADY_PLAYING("Can't spectate when in the arena!", "Already playing!"),
|
||||||
|
NOT_READY_PLAYERS("Not ready: %"),
|
||||||
|
FORCE_START_RUNNING("Arena has already started."),
|
||||||
|
FORCE_START_NOT_READY("Can't force start, no players are ready."),
|
||||||
|
FORCE_START_STARTED("Forced arena start."),
|
||||||
|
FORCE_END_EMPTY("No one is in the arena."),
|
||||||
|
FORCE_END_ENDED("Forced arena end."),
|
||||||
|
FORCE_END_IDLE("You weren't quick enough!"),
|
||||||
|
REWARDS_GIVE("Here are all of your rewards!"),
|
||||||
|
LOBBY_DROP_ITEM("No sharing allowed at this time!", "Can't drop items here."),
|
||||||
|
LOBBY_PLAYER_READY("You have been flagged as ready!", "Flagged as ready!"),
|
||||||
|
LOBBY_PICK_CLASS("You must first pick a class!", "Pick a class first!"),
|
||||||
|
LOBBY_NOT_ENOUGH_PLAYERS("Not enough players to start. Need at least % players.", "Need more players."),
|
||||||
|
LOBBY_RIGHT_CLICK("Punch the sign. Don't right-click.", "Punch the sign."),
|
||||||
|
LOBBY_CLASS_PICKED("You have chosen % as your class!", "%"),
|
||||||
|
LOBBY_CLASS_RANDOM("You will get a random class on arena start."),
|
||||||
|
LOBBY_CLASS_PERMISSION("You don't have permission to use this class!", "No permission!", Material.FENCE),
|
||||||
|
WARP_TO_ARENA("Can't warp to the arena during battle!"),
|
||||||
|
WARP_FROM_ARENA("Warping not allowed in the arena!"),
|
||||||
|
WAVE_DEFAULT("Wave #%!", "Wave #%!", Material.YELLOW_FLOWER),
|
||||||
|
WAVE_SPECIAL("Wave #%! [SPECIAL]", "Wave #%! [SPECIAL]", Material.RED_ROSE),
|
||||||
|
WAVE_SWARM("Wave #%! [SWARM]", "Wave #%! [SWARM]", Material.LONG_GRASS),
|
||||||
|
WAVE_BOSS("Wave #%! [BOSS]", "Wave #%! [BOSS]", Material.FIRE),
|
||||||
|
WAVE_BOSS_ABILITY("Boss used ability: %!", "Boss: %", Material.FIRE),
|
||||||
|
WAVE_BOSS_LOW_HEALTH("Boss is almost dead!", "Boss almost dead!", Material.FIRE),
|
||||||
|
WAVE_REWARD("You just earned a reward: %", "Reward: %"),
|
||||||
|
MISC_LIST_PLAYERS("Live players: %"),
|
||||||
|
MISC_LIST_ARENAS("Available arenas: %"),
|
||||||
|
MISC_COMMAND_NOT_ALLOWED("You can't use that command in the arena!"),
|
||||||
|
MISC_NO_ACCESS("You don't have access to this command."),
|
||||||
|
MISC_NONE("<none>");
|
||||||
|
|
||||||
|
private String msg, spoutMsg;
|
||||||
|
private Material logo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
* @param msg a string for the chat window
|
||||||
|
* @param spoutMsg a string for Spout
|
||||||
|
* @param logo a logo for Spout
|
||||||
|
*/
|
||||||
|
private Msg(String msg, String spoutMsg, Material logo) {
|
||||||
|
this.msg = msg;
|
||||||
|
this.spoutMsg = spoutMsg;
|
||||||
|
this.logo = logo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom Spout constructor.
|
||||||
|
* @param msg a string for the chat window
|
||||||
|
* @param spoutMsg a string for Spout
|
||||||
|
*/
|
||||||
|
private Msg(String msg, String spoutMsg) {
|
||||||
|
this(msg, spoutMsg, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom normal constructor.
|
||||||
|
* @param msg a string for the chat window
|
||||||
|
*/
|
||||||
|
private Msg(String msg) {
|
||||||
|
this(msg, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change this enum's chat window string.
|
||||||
|
* @param msg a string for the chat window
|
||||||
|
*/
|
||||||
|
public void set(String msg) {
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change this enum's Spout string.
|
||||||
|
* @param spoutMsg a string for Spout
|
||||||
|
*/
|
||||||
|
public void setSpout(String spoutMsg) {
|
||||||
|
this.spoutMsg = spoutMsg;
|
||||||
|
|
||||||
|
if (spoutMsg == null)
|
||||||
|
logo = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if this enum has a Spout string associated with it.
|
||||||
|
* @return true, if a Spout string is available, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean hasSpoutMsg() {
|
||||||
|
return spoutMsg != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the logo of this enum.
|
||||||
|
* The default logo is Material.SLIME_BALL if none is specified.
|
||||||
|
* @return the logo for this enum
|
||||||
|
*/
|
||||||
|
public Material getLogo() {
|
||||||
|
return logo == null ? Material.SLIME_BALL : logo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as above, just returning the string for Spout instead.
|
||||||
|
* @return the string for Spout
|
||||||
|
*/
|
||||||
|
public String toSpoutString() {
|
||||||
|
return spoutMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extended toString method that allows a variable.
|
||||||
|
* @param s the variable value
|
||||||
|
* @return the string for the chat window, with all %'s replaced by the input
|
||||||
|
*/
|
||||||
|
public String toString(String s) {
|
||||||
|
return (s != null) ? msg.replace("%", s) : msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as above, but for the Spout string.
|
||||||
|
* @param s the variable value
|
||||||
|
* @return the string for Spout, with all %'s replaced by the input
|
||||||
|
*/
|
||||||
|
public String toSpoutString(String s) {
|
||||||
|
if (spoutMsg == null)
|
||||||
|
return toString(s);
|
||||||
|
|
||||||
|
return (s != null) ? spoutMsg.replace("%", s) : spoutMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,7 +30,7 @@ public class CommandHandler implements CommandExecutor
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
sender.sendMessage("You need arguments, pal!");
|
plugin.tell(sender, Msg.MISC_NONE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,28 +21,16 @@ public class ArenaListCommand implements MACommand
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(MobArenaPlugin plugin, Player sender, String... args) {
|
public boolean execute(MobArenaPlugin plugin, Player sender, String... args) {
|
||||||
// Grab the arena master.
|
// Grab the arena master and the args.
|
||||||
ArenaMaster am = plugin.getArenaMaster();
|
ArenaMaster am = plugin.getArenaMaster();
|
||||||
|
|
||||||
// Get the arenas.
|
// Get the arenas.
|
||||||
List<Arena> arenas = am.getEnabledArenas();
|
List<Arena> arenas = am.getEnabledAndPermittedArenas(sender);
|
||||||
|
|
||||||
String msg = "Available arenas: ";
|
// Turn the list into a string.
|
||||||
if (arenas.size() == 0) {
|
String msg = Msg.MISC_LIST_ARENAS.toString(listToString(arenas));
|
||||||
sender.sendMessage(msg + "<none>");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enumerate arenas.
|
plugin.tell(sender, msg);
|
||||||
for (Arena a : arenas) {
|
|
||||||
msg += a.configName() + ", ";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trim off the trailing comma.
|
|
||||||
msg = msg.substring(0, msg.length() - 2);
|
|
||||||
|
|
||||||
// Send the message!
|
|
||||||
sender.sendMessage(msg);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,4 +38,17 @@ public class ArenaListCommand implements MACommand
|
|||||||
public boolean executeFromConsole(MobArenaPlugin plugin, CommandSender sender, String... args) {
|
public boolean executeFromConsole(MobArenaPlugin plugin, CommandSender sender, String... args) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private <E> String listToString(List<E> list) {
|
||||||
|
String result = "";
|
||||||
|
|
||||||
|
for (E e : list) {
|
||||||
|
result += e + ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.equals(""))
|
||||||
|
return Msg.MISC_NONE.toString();
|
||||||
|
|
||||||
|
return result.substring(0, result.length() - 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,28 +21,46 @@ public class JoinCommand implements MACommand
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(MobArenaPlugin plugin, Player sender, String... args) {
|
public boolean execute(MobArenaPlugin plugin, Player sender, String... args) {
|
||||||
// Grab the arena master
|
// Grab the arena master and get the argument.
|
||||||
ArenaMaster am = plugin.getArenaMaster();
|
ArenaMaster am = plugin.getArenaMaster();
|
||||||
|
String arenaName = (args.length == 1) ? args[0] : null;
|
||||||
|
|
||||||
// Get all enabled arenas.
|
// Get all arenas this player is eligible for.
|
||||||
List<Arena> arenas = am.getEnabledArenas();
|
List<Arena> arenas = am.getEnabledAndPermittedArenas(sender);
|
||||||
|
|
||||||
// If no arena was specified, and multiple arenas are available, notify.
|
// If no arenas found, just tell the player it's not enabled.
|
||||||
if (args.length < 1 && arenas.size() > 1) {
|
if (arenas.size() == 0) {
|
||||||
sender.sendMessage("There are more than one arena. Pick one, damnit!");
|
plugin.tell(sender, Msg.JOIN_ARENA_NOT_ENABLED);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If only one arena, pick it no matter what, otherwise, look for name.
|
|
||||||
Arena arena = arenas.size() == 1 ? arenas.get(0) : am.getArenaWithName(args[0]);
|
|
||||||
|
|
||||||
// If null, no arena was found.
|
|
||||||
if (arena == null) {
|
|
||||||
sender.sendMessage("The arena '" + args[0] + "' does not exist.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage("You've joined arena '" + arena.configName() + "'!");
|
// Require an argument in case of multiple arenas.
|
||||||
|
if (arenaName == null && arenas.size() > 1) {
|
||||||
|
plugin.tell(sender, Msg.JOIN_ARG_NEEDED);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* At this point in time, if there was no argument, there must be only
|
||||||
|
* a single arena in the list. If there was an argument, we can safely
|
||||||
|
* get the arena with that name, because canJoin() will do the rest of
|
||||||
|
* the sanity checks. */
|
||||||
|
Arena a = (arenaName == null) ? arenas.get(0) : am.getArenaWithName(arenaName);
|
||||||
|
|
||||||
|
// If the arena is null, it doesn't exist.
|
||||||
|
if (a == null) {
|
||||||
|
plugin.tell(sender, Msg.ARENA_DOES_NOT_EXIST);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Let the arena itself do the rest of the sanity checking.
|
||||||
|
if (!a.canJoin(sender)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no problems, let the guy join and notify.
|
||||||
|
a.playerJoin(sender, sender.getLocation());
|
||||||
|
plugin.tell(sender, Msg.JOIN_PLAYER_JOINED);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import org.bukkit.entity.LivingEntity;
|
|||||||
|
|
||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
import com.garbagemule.MobArena.MAUtils;
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
import com.garbagemule.MobArena.Msg;
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
import com.garbagemule.MobArena.util.WaveUtils;
|
import com.garbagemule.MobArena.util.WaveUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.bukkit.Location;
|
|||||||
|
|
||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
import com.garbagemule.MobArena.MAUtils;
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
import com.garbagemule.MobArena.Msg;
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
import com.garbagemule.MobArena.util.WaveUtils;
|
import com.garbagemule.MobArena.util.WaveUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.bukkit.Location;
|
|||||||
|
|
||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
import com.garbagemule.MobArena.MAUtils;
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
import com.garbagemule.MobArena.Msg;
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
import com.garbagemule.MobArena.util.WaveUtils;
|
import com.garbagemule.MobArena.util.WaveUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import org.bukkit.entity.LivingEntity;
|
|||||||
|
|
||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
import com.garbagemule.MobArena.MAUtils;
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
import com.garbagemule.MobArena.MAMessages.Msg;
|
import com.garbagemule.MobArena.Msg;
|
||||||
import com.garbagemule.MobArena.util.Config;
|
import com.garbagemule.MobArena.util.Config;
|
||||||
import com.garbagemule.MobArena.util.WaveUtils;
|
import com.garbagemule.MobArena.util.WaveUtils;
|
||||||
|
|
||||||
|
|||||||
+111
@@ -0,0 +1,111 @@
|
|||||||
|
# MobArena v0.94.4.3 - Config-file
|
||||||
|
# Read the Wiki for details on how to set up this file: http://goo.gl/F5TTc
|
||||||
|
# Note: You -must- use spaces instead of tabs!
|
||||||
|
global-settings:
|
||||||
|
enabled: true
|
||||||
|
allowed-commands: /list, /pl
|
||||||
|
update-notification: true
|
||||||
|
classes:
|
||||||
|
Knight:
|
||||||
|
items: diamond_sword, grilled_pork:2, rotten_flesh:2
|
||||||
|
armor: 306,307,308,309
|
||||||
|
permissions:
|
||||||
|
- fastfood.instanteat
|
||||||
|
- fastfood.nostarve
|
||||||
|
- -fastfood.autoregain
|
||||||
|
Tank:
|
||||||
|
items: iron_sword, grilled_pork:3, apple, coal, compass
|
||||||
|
armor: 310,311,312,313
|
||||||
|
permissions:
|
||||||
|
Archer:
|
||||||
|
items: wood_sword, bow, arrow:256, grilled_pork, bone
|
||||||
|
armor: 298,299,300,301
|
||||||
|
Chef:
|
||||||
|
items: stone_sword, bread:6, grilled_pork:4, mushroom_soup, cake:5, ink_sack:3:10, wool:3:2, ink_sack:brown:10, wool:brown:2
|
||||||
|
armor: 314,315,316,317
|
||||||
|
permissions:
|
||||||
|
- fastfood.instanteat
|
||||||
|
- fastfood.nostarve
|
||||||
|
- -fastfood.autoregain
|
||||||
|
Oddjob:
|
||||||
|
items: stone_sword, flint_and_steel, netherrack:2, tnt:4, pork:3, potion:32:10, potion:10, potion:8226:2, potion:8197:2, potion:16420:2
|
||||||
|
armor: 298,299,300,301
|
||||||
|
permissions:
|
||||||
|
- fastfood.instanteat
|
||||||
|
- fastfood.nostarve
|
||||||
|
- -fastfood.autoregain
|
||||||
|
arenas:
|
||||||
|
lol:
|
||||||
|
settings:
|
||||||
|
world: Tundra
|
||||||
|
enabled: true
|
||||||
|
protect: true
|
||||||
|
entry-fee: ''
|
||||||
|
logging: yml
|
||||||
|
clear-wave-before-next: true
|
||||||
|
detonate-creepers: false
|
||||||
|
detonate-damage: false
|
||||||
|
lightning: true
|
||||||
|
auto-equip-armor: true
|
||||||
|
force-restore: false
|
||||||
|
soft-restore: false
|
||||||
|
soft-restore-drops: false
|
||||||
|
require-empty-inv-join: false
|
||||||
|
require-empty-inv-spec: true
|
||||||
|
hellhounds: false
|
||||||
|
pvp-enabled: false
|
||||||
|
monster-infight: false
|
||||||
|
allow-teleporting: false
|
||||||
|
spectate-on-death: true
|
||||||
|
share-items-in-arena: true
|
||||||
|
player-limit: 0
|
||||||
|
max-join-distance: 0
|
||||||
|
repair-delay: 5
|
||||||
|
first-wave-delay: 3
|
||||||
|
wave-interval: 12
|
||||||
|
special-modulo: 4
|
||||||
|
max-idle-time: 0
|
||||||
|
min-players: 0
|
||||||
|
max-players: 0
|
||||||
|
spout-class-select: true
|
||||||
|
final-wave: 0
|
||||||
|
waves:
|
||||||
|
recurrent:
|
||||||
|
def1:
|
||||||
|
type: default
|
||||||
|
priority: 1
|
||||||
|
frequency: 1
|
||||||
|
monsters:
|
||||||
|
mushroom_cows: 10
|
||||||
|
wave: 1
|
||||||
|
boss1:
|
||||||
|
type: boss
|
||||||
|
priority: 10
|
||||||
|
frequency: 5
|
||||||
|
monster: zombie
|
||||||
|
abilities: root-target, fetch-distant
|
||||||
|
ability-interval: 3
|
||||||
|
ability-announce: true
|
||||||
|
rewards:
|
||||||
|
waves:
|
||||||
|
after:
|
||||||
|
'7': minecart, storage_minecart, powered_minecart
|
||||||
|
'16': diamond_sword
|
||||||
|
'13': iron_sword, iron_pickaxe, iron_spade
|
||||||
|
every:
|
||||||
|
'1': sponge
|
||||||
|
'3': feather, bone, stick
|
||||||
|
'10': iron_ingot:10, gold_ingot:8
|
||||||
|
'5': dirt:4, gravel:4, stone:4
|
||||||
|
coords:
|
||||||
|
p1: 83,64,107,0.0,0.0
|
||||||
|
p2: 113,79,137,0.0,0.0
|
||||||
|
arena: 100,72,132,-233.39989,10.649986
|
||||||
|
lobby: 87,66,111,0.0,0.0
|
||||||
|
spectator: 13,66,46,6.0015564,-3.7500422
|
||||||
|
spawnpoints:
|
||||||
|
s1: 88,72,112,0.0,0.0
|
||||||
|
s2: 88,72,132,0.0,0.0
|
||||||
|
s3: 108,72,112,0.0,0.0
|
||||||
|
s4: 108,72,132,0.0,0.0
|
||||||
|
leaderboard: 16,67,49,0.0,0.0
|
||||||
@@ -0,0 +1,212 @@
|
|||||||
|
package garbagemule.mobarena.standard;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.bukkit.util.config.Configuration;
|
||||||
|
import org.junit.*;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.util.Config;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public class TestNewConfig
|
||||||
|
{
|
||||||
|
private Configuration oldConfig;
|
||||||
|
private Config newConfig;
|
||||||
|
private File testFileOld, testFileNew;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
testFileOld = makeTestFile("test", "config.yml");
|
||||||
|
testFileNew = makeTestFile("test", "config.yml");
|
||||||
|
|
||||||
|
oldConfig = new Configuration(testFileOld);
|
||||||
|
newConfig = new Config(testFileNew);
|
||||||
|
|
||||||
|
oldConfig.load();
|
||||||
|
newConfig.load();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void cleanup() {
|
||||||
|
testFileOld.delete();
|
||||||
|
testFileNew.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getProperty() {
|
||||||
|
String path = "arenas.lol.rewards.waves.after.7";
|
||||||
|
|
||||||
|
Object oldObj = oldConfig.getProperty(path);
|
||||||
|
Object newObj = newConfig.getProperty(path);
|
||||||
|
|
||||||
|
assertEquals(oldObj, newObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getInt() {
|
||||||
|
String path = "arenas.lol.settings.first-wave-delay";
|
||||||
|
int oldInt = oldConfig.getInt(path, -1);
|
||||||
|
int newInt = newConfig.getInt(path, -2);
|
||||||
|
|
||||||
|
assertEquals(oldInt, newInt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getString() {
|
||||||
|
String path = "classes.Knight.items";
|
||||||
|
String oldString = oldConfig.getString(path, "old");
|
||||||
|
String newString = newConfig.getString(path, "new");
|
||||||
|
|
||||||
|
assertEquals(oldString, newString);
|
||||||
|
|
||||||
|
path = "classes.Knight.armor";
|
||||||
|
oldString = oldConfig.getString(path, "old");
|
||||||
|
newString = newConfig.getString(path, "new");
|
||||||
|
|
||||||
|
assertEquals(oldString, newString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getBoolean() {
|
||||||
|
String path = "global-settings.enabled";
|
||||||
|
boolean oldBoolean = oldConfig.getBoolean(path, false);
|
||||||
|
boolean newBoolean = newConfig.getBoolean(path, true);
|
||||||
|
|
||||||
|
assertEquals(oldBoolean, newBoolean);
|
||||||
|
|
||||||
|
// Test with both permutations of the default value.
|
||||||
|
oldBoolean = oldConfig.getBoolean(path, true);
|
||||||
|
newBoolean = newConfig.getBoolean(path, false);
|
||||||
|
|
||||||
|
assertEquals(oldBoolean, newBoolean);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getKeys() {
|
||||||
|
String path = "classes";
|
||||||
|
|
||||||
|
List<String> oldList = new LinkedList<String>();
|
||||||
|
List<String> newList = new LinkedList<String>();
|
||||||
|
|
||||||
|
oldList.addAll(oldConfig.getKeys(path));
|
||||||
|
newList.addAll(newConfig.getKeys(path));
|
||||||
|
|
||||||
|
// Sort, just in case.
|
||||||
|
Collections.sort(oldList);
|
||||||
|
Collections.sort(newList);
|
||||||
|
|
||||||
|
assertEquals(oldList, newList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getStringList() {
|
||||||
|
String path = "classes.Knight.permissions";
|
||||||
|
|
||||||
|
List<String> oldList = oldConfig.getStringList(path, null);
|
||||||
|
List<String> newList = newConfig.getStringList(path, null);
|
||||||
|
assertNotNull(oldList);
|
||||||
|
assertNotNull(newList);
|
||||||
|
assertFalse(oldList.isEmpty());
|
||||||
|
assertFalse(newList.isEmpty());
|
||||||
|
|
||||||
|
assertEquals(oldList, newList);
|
||||||
|
|
||||||
|
// Empty lists.
|
||||||
|
path = "classes.Tank.permissions";
|
||||||
|
|
||||||
|
oldList = oldConfig.getStringList(path, new LinkedList<String>());
|
||||||
|
newList = newConfig.getStringList(path, new LinkedList<String>());
|
||||||
|
assertNotNull(oldList);
|
||||||
|
assertNotNull(newList);
|
||||||
|
assertTrue(oldList.isEmpty());
|
||||||
|
assertTrue(newList.isEmpty());
|
||||||
|
|
||||||
|
assertEquals(oldList, newList);
|
||||||
|
|
||||||
|
// Null values behave the same as empty lists.
|
||||||
|
oldList = oldConfig.getStringList(path, null);
|
||||||
|
newList = newConfig.getStringList(path, null);
|
||||||
|
assertNotNull(oldList);
|
||||||
|
assertNotNull(newList);
|
||||||
|
assertTrue(oldList.isEmpty());
|
||||||
|
assertTrue(newList.isEmpty());
|
||||||
|
|
||||||
|
assertEquals(oldList, newList);
|
||||||
|
|
||||||
|
|
||||||
|
// Non-existing lists.
|
||||||
|
path = "classes.Archer.permissions";
|
||||||
|
|
||||||
|
oldList = oldConfig.getStringList(path, new LinkedList<String>());
|
||||||
|
newList = newConfig.getStringList(path, new LinkedList<String>());
|
||||||
|
assertNotNull(oldList);
|
||||||
|
assertNotNull(newList);
|
||||||
|
assertTrue(oldList.isEmpty());
|
||||||
|
assertTrue(newList.isEmpty());
|
||||||
|
|
||||||
|
assertEquals(oldList, newList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void removeProperty() {
|
||||||
|
String path = "global-settings.enabled";
|
||||||
|
|
||||||
|
// Make sure something exists first.
|
||||||
|
Object oldObj = oldConfig.getProperty(path);
|
||||||
|
Object newObj = newConfig.getProperty(path);
|
||||||
|
assertNotNull(oldObj);
|
||||||
|
assertNotNull(newObj);
|
||||||
|
|
||||||
|
assertEquals(oldObj, newObj);
|
||||||
|
|
||||||
|
// Remove and try again.
|
||||||
|
oldConfig.removeProperty(path);
|
||||||
|
newConfig.removeProperty(path);
|
||||||
|
|
||||||
|
// They should now both be null.
|
||||||
|
oldObj = oldConfig.getProperty(path);
|
||||||
|
newObj = newConfig.getProperty(path);
|
||||||
|
assertNull(oldObj);
|
||||||
|
assertNull(newObj);
|
||||||
|
|
||||||
|
assertEquals(oldObj, newObj);
|
||||||
|
|
||||||
|
// Should be idempotent.
|
||||||
|
oldConfig.removeProperty(path);
|
||||||
|
newConfig.removeProperty(path);
|
||||||
|
|
||||||
|
oldObj = oldConfig.getProperty(path);
|
||||||
|
newObj = newConfig.getProperty(path);
|
||||||
|
assertNull(oldObj);
|
||||||
|
assertNull(newObj);
|
||||||
|
|
||||||
|
assertEquals(oldObj, newObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
private File makeTestFile(String path, String filename) {
|
||||||
|
// Grab the time
|
||||||
|
Timestamp timestamp = new Timestamp(new Date().getTime());
|
||||||
|
|
||||||
|
// Convert to a string
|
||||||
|
String time = new SimpleDateFormat("MM-dd-yyyy-H_m_s_S").format(timestamp);
|
||||||
|
|
||||||
|
// Make a new file
|
||||||
|
File testFile = new File(path + File.separator + time + "_" + filename);
|
||||||
|
|
||||||
|
// Start copying the bytes
|
||||||
|
try {
|
||||||
|
FileUtils.copyFile(new File(path + File.separator + filename), testFile);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return testFile;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
package garbagemule.mobarena.standard;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import mock.bukkit.*;
|
||||||
|
import mock.mobarena.*;
|
||||||
|
import mock.util.MockLogger;
|
||||||
|
|
||||||
|
import org.junit.*;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.*;
|
||||||
|
import com.garbagemule.MobArena.commands.*;
|
||||||
|
|
||||||
|
public class TestUserCommands
|
||||||
|
{
|
||||||
|
private static final String LABEL = "ma";
|
||||||
|
|
||||||
|
private MockLogger log;
|
||||||
|
private String expected;
|
||||||
|
|
||||||
|
private MobArenaPlugin plugin;
|
||||||
|
private ArenaMaster arenaMaster;
|
||||||
|
private CommandHandler commandHandler;
|
||||||
|
private MockPlayer player;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
// Set up the log.;
|
||||||
|
log = new MockLogger();
|
||||||
|
log.log("Start");
|
||||||
|
|
||||||
|
// Create a plugin.
|
||||||
|
plugin = new MockMobArena();
|
||||||
|
|
||||||
|
// Get the ArenaMaster.
|
||||||
|
arenaMaster = plugin.getArenaMaster();
|
||||||
|
|
||||||
|
// Create a player and a command handler.
|
||||||
|
player = new MockPlayer("garbagemule", log);
|
||||||
|
commandHandler = new CommandHandler(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void cleanup() {
|
||||||
|
log = null;
|
||||||
|
plugin = null;
|
||||||
|
arenaMaster = null;
|
||||||
|
player = null;
|
||||||
|
commandHandler = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ********************************************************************* */
|
||||||
|
/*
|
||||||
|
/* JOIN COMMAND
|
||||||
|
/*
|
||||||
|
/* ********************************************************************* */
|
||||||
|
|
||||||
|
// TODO: Expand all tests to check that the player is indeed added and warped.
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void expectArguments() {
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs());
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.MISC_NONE);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void playerCanJoinExistingArena() {
|
||||||
|
// Create some arenas.
|
||||||
|
createArenas("test","test2","test21","test12");
|
||||||
|
|
||||||
|
// Try to join an existing arena.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("join","test"));
|
||||||
|
|
||||||
|
// Success!
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.JOIN_PLAYER_JOINED);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
|
||||||
|
// Verify that the player is now in the lobby.
|
||||||
|
Arena a = arenaMaster.getArenaWithName("test");
|
||||||
|
assertTrue(a.inLobby(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void playerCantJoinNonExistingArena() {
|
||||||
|
// Create some arenas.
|
||||||
|
createArenas("test","test2","test21","test12");
|
||||||
|
|
||||||
|
// Try to join one that doesn't exist.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("join","test1"));
|
||||||
|
|
||||||
|
// Failure!
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.ARENA_DOES_NOT_EXIST);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void argsRequiredForMultipleArenas() {
|
||||||
|
// Create some arenas.
|
||||||
|
createArenas("test","test2","test21","test12");
|
||||||
|
|
||||||
|
// Try to join with no arguments.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("join"));
|
||||||
|
|
||||||
|
// Should join the only existing arena.
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.JOIN_ARG_NEEDED);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void noArgsNeededForOneArenaOnly() {
|
||||||
|
// Create one arena.
|
||||||
|
createArenas("gjklqwejklewjglkejg");
|
||||||
|
|
||||||
|
// Try to join with no arguments.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("join"));
|
||||||
|
|
||||||
|
// Should join the only existing arena.
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.JOIN_PLAYER_JOINED);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
|
||||||
|
// Verify that the player is now in the lobby.
|
||||||
|
Arena a = arenaMaster.getArenaWithName("gjklqwejklewjglkejg");
|
||||||
|
assertTrue(a.inLobby(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void playerCanOnlyJoinPermittedArenas() {
|
||||||
|
// Create a couple of arenas.
|
||||||
|
createArenas("yay", "nay");
|
||||||
|
|
||||||
|
// Give the player no permission for one.
|
||||||
|
player.setPermission("mobarena.arenas.nay", false);
|
||||||
|
|
||||||
|
// Try to join.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("join","nay"));
|
||||||
|
|
||||||
|
// No permission.
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.JOIN_ARENA_PERMISSION);
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
|
||||||
|
// Verify that the player didn't join and isn't in the lobby.
|
||||||
|
Arena a = arenaMaster.getArenaWithName("nay");
|
||||||
|
assertFalse(a.inLobby(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ********************************************************************* */
|
||||||
|
/*
|
||||||
|
/* LIST ARENAS COMMAND
|
||||||
|
/*
|
||||||
|
/* ********************************************************************* */
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldListAllArenas() {
|
||||||
|
// Create some arenas.
|
||||||
|
createArenas("one", "two", "three", "four");
|
||||||
|
|
||||||
|
// Try to list them.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("arenas"));
|
||||||
|
|
||||||
|
// Should show all of them, because player has permission to all per default.
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.MISC_LIST_ARENAS.toString("one, two, three, four"));
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldListMiscNoneIfNoArenas() {
|
||||||
|
// Create an arena and remove the permission.
|
||||||
|
createArenas("one");
|
||||||
|
player.setPermission("mobarena.arenas.one", false);
|
||||||
|
|
||||||
|
// Try to list arenas.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("arenas"));
|
||||||
|
|
||||||
|
// Should display MISC_NONE
|
||||||
|
String none = Msg.MISC_NONE.toString();
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.MISC_LIST_ARENAS.toString(none));
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldDisplayOnlyPermittedArenas() {
|
||||||
|
// Create three arenas, remove permissions for one.
|
||||||
|
createArenas("one", "two", "three");
|
||||||
|
player.setPermission("mobarena.arenas.two", false);
|
||||||
|
|
||||||
|
// List arenas.
|
||||||
|
commandHandler.onCommand(player, null, LABEL, compileArgs("arenas"));
|
||||||
|
|
||||||
|
// Should display one and three.
|
||||||
|
expected = MockLogger.compileMsgToPlayer(player, Msg.MISC_LIST_ARENAS.toString("one, three"));
|
||||||
|
assertEquals(expected, log.getLastEntry().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createArenas(String... args) {
|
||||||
|
for (String s : args) {
|
||||||
|
arenaMaster.createArenaNode(s, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String[] compileArgs(String... args) {
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package mock.bukkit;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class MockCommand extends Command
|
||||||
|
{
|
||||||
|
public MockCommand(String name)
|
||||||
|
{
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(CommandSender arg0, String arg1, String[] arg2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,976 @@
|
|||||||
|
package mock.bukkit;
|
||||||
|
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import mock.util.MockLogger;
|
||||||
|
|
||||||
|
import org.bukkit.*;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.*;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.inventory.*;
|
||||||
|
import org.bukkit.map.MapView;
|
||||||
|
import org.bukkit.permissions.*;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
public class MockPlayer implements Player
|
||||||
|
{
|
||||||
|
private MockLogger log;
|
||||||
|
private String name;
|
||||||
|
private int health;
|
||||||
|
private boolean isOp;
|
||||||
|
private Map<String,Boolean> permissions;
|
||||||
|
|
||||||
|
public MockPlayer(String name) {
|
||||||
|
this.name = name;
|
||||||
|
this.health = 20;
|
||||||
|
this.isOp = false;
|
||||||
|
this.permissions = new HashMap<String,Boolean>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MockPlayer(String name, MockLogger log) {
|
||||||
|
this(name);
|
||||||
|
this.log = log;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPermission(String perm, Boolean b) {
|
||||||
|
permissions.put(perm, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePermission(String perm) {
|
||||||
|
permissions.remove(perm);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GameMode getGameMode()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlayerInventory getInventory()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getItemInHand()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSleepTicks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSleeping()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setGameMode(GameMode arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setItemInHand(ItemStack arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void damage(int value)
|
||||||
|
{
|
||||||
|
health -= value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void damage(int arg0, Entity arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getEyeHeight()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getEyeHeight(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getEyeLocation()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getHealth()
|
||||||
|
{
|
||||||
|
return health;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLastDamage()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getLastTwoTargetBlocks(HashSet<Byte> arg0, int arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getLineOfSight(HashSet<Byte> arg0, int arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxHealth()
|
||||||
|
{
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaximumAir()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaximumNoDamageTicks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getNoDamageTicks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRemainingAir()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Block getTargetBlock(HashSet<Byte> arg0, int arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vehicle getVehicle()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInsideVehicle()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean leaveVehicle()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHealth(int value)
|
||||||
|
{
|
||||||
|
health = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLastDamage(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaximumAir(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaximumNoDamageTicks(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNoDamageTicks(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRemainingAir(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arrow shootArrow()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Egg throwEgg()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Snowball throwSnowball()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean eject()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEntityId()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getFallDistance()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFireTicks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityDamageEvent getLastDamageCause()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxFireTicks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Entity> getNearbyEntities(double arg0, double arg1, double arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity getPassenger()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Server getServer()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTicksLived()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UUID getUniqueId()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector getVelocity()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public World getWorld()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDead()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFallDistance(float arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFireTicks(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLastDamageCause(EntityDamageEvent arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setPassenger(Entity arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTicksLived(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setVelocity(Vector arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean teleport(Location arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean teleport(Entity arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PermissionAttachment addAttachment(Plugin arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PermissionAttachment addAttachment(Plugin arg0, int arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PermissionAttachment addAttachment(Plugin arg0, String arg1,
|
||||||
|
boolean arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PermissionAttachment addAttachment(Plugin arg0, String arg1,
|
||||||
|
boolean arg2, int arg3)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<PermissionAttachmentInfo> getEffectivePermissions()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(String perm) {
|
||||||
|
Boolean b = permissions.get(perm);
|
||||||
|
if (b == null || b.booleanValue() == true)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(Permission perm)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPermissionSet(String perm) {
|
||||||
|
return permissions.get(perm) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPermissionSet(Permission arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void recalculatePermissions()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeAttachment(PermissionAttachment arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOp()
|
||||||
|
{
|
||||||
|
return isOp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOp(boolean value)
|
||||||
|
{
|
||||||
|
this.isOp = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendMessage(String msg) {
|
||||||
|
log.log(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBanned()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOnline()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWhitelisted()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBanned(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWhitelisted(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> serialize()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void awardAchievement(Achievement arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void chat(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InetSocketAddress getAddress()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getBedSpawnLocation()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getCompassTarget()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDisplayName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getExhaustion()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getExp()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getExperience()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFoodLevel()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLevel()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPlayerListName()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getPlayerTime()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getPlayerTimeOffset()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getSaturation()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalExperience()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveExp(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void incrementStatistic(Statistic arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void incrementStatistic(Statistic arg0, int arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void incrementStatistic(Statistic arg0, Material arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void incrementStatistic(Statistic arg0, Material arg1, int arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPlayerTimeRelative()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSleepingIgnored()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSneaking()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSprinting()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void kickPlayer(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadData()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean performCommand(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playEffect(Location arg0, Effect arg1, int arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playNote(Location arg0, byte arg1, byte arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playNote(Location arg0, Instrument arg1, Note arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resetPlayerTime()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendBlockChange(Location arg0, Material arg1, byte arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendBlockChange(Location arg0, int arg1, byte arg2)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean sendChunkChange(Location arg0, int arg1, int arg2, int arg3,
|
||||||
|
byte[] arg4)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendMap(MapView arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendRawMessage(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCompassTarget(Location arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDisplayName(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setExhaustion(float arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setExp(float arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setExperience(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFoodLevel(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLevel(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPlayerListName(String arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPlayerTime(long arg0, boolean arg1)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSaturation(float arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSleepingIgnored(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSneaking(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSprinting(boolean arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTotalExperience(int arg0)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateInventory()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,540 @@
|
|||||||
|
package mock.mobarena;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
|
//import org.bukkit.util.config.Configuration;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.Arena;
|
||||||
|
import com.garbagemule.MobArena.ArenaPlayer;
|
||||||
|
import com.garbagemule.MobArena.ArenaPlayerStatistics;
|
||||||
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
|
import com.garbagemule.MobArena.MobArena;
|
||||||
|
import com.garbagemule.MobArena.MobArenaPlugin;
|
||||||
|
import com.garbagemule.MobArena.Msg;
|
||||||
|
import com.garbagemule.MobArena.repairable.Repairable;
|
||||||
|
import com.garbagemule.MobArena.util.Config;
|
||||||
|
import com.garbagemule.MobArena.waves.BossWave;
|
||||||
|
import com.garbagemule.MobArena.waves.Wave;
|
||||||
|
|
||||||
|
public class MockArena extends Arena
|
||||||
|
{
|
||||||
|
private MobArenaPlugin plugin;
|
||||||
|
private String name;
|
||||||
|
private boolean enabled;
|
||||||
|
|
||||||
|
public MockArena(MobArenaPlugin plugin, String name, World world) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.name = name;
|
||||||
|
this.enabled = true;
|
||||||
|
this.setup = true;
|
||||||
|
this.running = false;
|
||||||
|
|
||||||
|
this.arenaPlayers = new HashSet<Player>();
|
||||||
|
this.lobbyPlayers = new HashSet<Player>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean startArena()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean endArena()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceStart()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceEnd()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerJoin(Player p, Location loc) {
|
||||||
|
lobbyPlayers.add(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerReady(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerLeave(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerDeath(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerSpec(Player p, Location loc)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playerKill(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreInvAndGiveRewardsDelayed(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreInvAndGiveRewards(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void storePlayerData(Player p, Location loc)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void storeContainerContents()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreContainerContents()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void movePlayerToLobby(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void movePlayerToSpec(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void movePlayerToEntry(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void repairBlocks()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void queueRepairable(Repairable r)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void assignClass(Player p, String className)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void assignRandomClass(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void assignClassPermissions(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeClassPermissions(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void load(Config config)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreRegion()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serializeConfig()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserializeConfig()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean serializeRegion()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deserializeRegion()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inRegion(Location loc)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inRegionRadius(Location loc, int radius)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inArena(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inLobby(Player p) {
|
||||||
|
return lobbyPlayers.contains(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRunning()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPvpEnabled()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLightningEnabled()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBossWave()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String configName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String arenaName()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MobArena getPlugin()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public World getWorld()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Wave getWave()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWave(Wave wave)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBossWave(BossWave bossWave)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<String> getClasses()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Location> getAllSpawnpoints()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Location> getSpawnpoints()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getBossSpawnpoint()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPlayerCount()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addBlock(Block b)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addMonster(LivingEntity e)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addExplodingSheep(LivingEntity e)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getAllPlayers()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getLivingPlayers()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<Player> getArenaPlayers()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<ArenaPlayer> getArenaPlayerSet()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ArenaPlayerStatistics> getArenaPlayerStatistics(
|
||||||
|
Comparator<ArenaPlayerStatistics> comparator)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getNonreadyPlayers()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<LivingEntity> getMonsters()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<Wolf> getPets()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resetIdleTimer()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addTrunkAndLeaves(Block b)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canAfford(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean takeFee(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canJoin(Player p) {
|
||||||
|
if (!enabled)
|
||||||
|
plugin.tell(p, Msg.JOIN_ARENA_NOT_ENABLED);
|
||||||
|
else if (!setup) //|| recurrentWaves.isEmpty()) TODO: Test waves.
|
||||||
|
plugin.tell(p, Msg.JOIN_ARENA_NOT_SETUP);
|
||||||
|
else if (edit)
|
||||||
|
plugin.tell(p, Msg.JOIN_ARENA_EDIT_MODE);
|
||||||
|
else if (running && (notifyPlayers.contains(p) || notifyPlayers.add(p)))
|
||||||
|
plugin.tell(p, Msg.JOIN_ARENA_IS_RUNNING);
|
||||||
|
else if (arenaPlayers.contains(p) || lobbyPlayers.contains(p))
|
||||||
|
plugin.tell(p, Msg.JOIN_ALREADY_PLAYING);
|
||||||
|
else if (!p.hasPermission("mobarena.arenas." + configName()))
|
||||||
|
plugin.tell(p, Msg.JOIN_ARENA_PERMISSION);
|
||||||
|
else if (maxPlayers > 0 && lobbyPlayers.size() >= maxPlayers)
|
||||||
|
plugin.tell(p, Msg.JOIN_PLAYER_LIMIT_REACHED);
|
||||||
|
else if (joinDistance > 0 && !inRegionRadius(p.getLocation(), joinDistance))
|
||||||
|
plugin.tell(p, Msg.JOIN_TOO_FAR);
|
||||||
|
else if (emptyInvJoin && !MAUtils.hasEmptyInventory(p))
|
||||||
|
plugin.tell(p, Msg.JOIN_EMPTY_INV);
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
|
||||||
|
/*else if (!canAfford(p))
|
||||||
|
plugin.tell(p, Msg.JOIN_FEE_REQUIRED, MAUtils.listToString(entryFee, plugin));*/
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canSpec(Player p)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,232 @@
|
|||||||
|
package mock.mobarena;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.*;
|
||||||
|
|
||||||
|
public class MockArenaMaster extends ArenaMaster
|
||||||
|
{
|
||||||
|
private MobArenaPlugin plugin;
|
||||||
|
private List<Arena> arenas;
|
||||||
|
|
||||||
|
public MockArenaMaster(MobArenaPlugin plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.arenas = new LinkedList<Arena>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Arena> getEnabledArenas() {
|
||||||
|
List<Arena> result = new LinkedList<Arena>();
|
||||||
|
|
||||||
|
for (Arena a : arenas) {
|
||||||
|
if (a.isEnabled())
|
||||||
|
result.add(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Arena> getPermittedArenas(Player p) {
|
||||||
|
List<Arena> result = new LinkedList<Arena>();
|
||||||
|
|
||||||
|
for (Arena a : arenas) {
|
||||||
|
String perm = "mobarena.arenas." + a.configName();
|
||||||
|
|
||||||
|
if (!p.isPermissionSet(perm) || p.hasPermission(perm))
|
||||||
|
result.add(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Arena> getEnabledAndPermittedArenas(Player p) {
|
||||||
|
List<Arena> result = new LinkedList<Arena>();
|
||||||
|
|
||||||
|
for (Arena a : arenas) {
|
||||||
|
// We only want enabled arenas.
|
||||||
|
if (!a.isEnabled())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// And the player must have permission.
|
||||||
|
String perm = "mobarena.arenas." + a.configName();
|
||||||
|
if (!p.isPermissionSet(perm) || p.hasPermission(perm))
|
||||||
|
result.add(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaAtLocation(Location loc)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Arena> getArenasInWorld(World world)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getAllPlayers()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getAllPlayersInArena(String arenaName)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getAllLivingPlayers()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Player> getLivingPlayersInArena(String arenaName)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithPlayer(Player p)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithPlayer(String playerName)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithSpectator(Player p)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithMonster(Entity e)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithPet(Entity e)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithName(String configName) {
|
||||||
|
return getArenaWithName(this.arenas, configName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena getArenaWithName(Collection<Arena> arenas, String configName) {
|
||||||
|
for (Arena a : arenas) {
|
||||||
|
if (a.configName().equals(configName))
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadSettings()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadClasses()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadArenas()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Arena createArenaNode(String configName, World world) {
|
||||||
|
Arena a = new MockArena(plugin, configName, world);
|
||||||
|
arenas.add(a);
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeArenaNode(String configName)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(boolean settings, boolean classes, boolean arenalist)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serializeSettings()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serializeArenas()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserializeArenas()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateSettings()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateClasses()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateArenas()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAll()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package mock.mobarena;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.ArenaMaster;
|
||||||
|
import com.garbagemule.MobArena.MobArenaPlugin;
|
||||||
|
import com.garbagemule.MobArena.Msg;
|
||||||
|
|
||||||
|
public class MockMobArena implements MobArenaPlugin
|
||||||
|
{
|
||||||
|
private ArenaMaster arenaMaster;
|
||||||
|
|
||||||
|
public MockMobArena() {
|
||||||
|
this.arenaMaster = new MockArenaMaster(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MockMobArena(ArenaMaster arenaMaster) {
|
||||||
|
this.arenaMaster = arenaMaster;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArenaMaster getArenaMaster() {
|
||||||
|
return arenaMaster;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tell(CommandSender sender, String msg) {
|
||||||
|
if (sender == null || msg.equals("") || msg.equals(" "))
|
||||||
|
return;
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "[MobArena] " + ChatColor.WHITE + msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tell(CommandSender sender, Msg msg) {
|
||||||
|
tell(sender, msg.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package mock.util;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.garbagemule.MobArena.Msg;
|
||||||
|
|
||||||
|
public class MockLogger
|
||||||
|
{
|
||||||
|
private TreeMap<Timestamp,String> entries;
|
||||||
|
|
||||||
|
public MockLogger() {
|
||||||
|
this.entries = new TreeMap<Timestamp,String>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void log(String msg) {
|
||||||
|
Timestamp time = new Timestamp(new Date().getTime());
|
||||||
|
this.entries.put(time, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int size() {
|
||||||
|
return entries.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entry<Timestamp,String> getLastEntry() {
|
||||||
|
if (entries.isEmpty())
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return entries.lastEntry();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entry<Timestamp,String> findEntry(String msg) {
|
||||||
|
for (Entry<Timestamp,String> entry : entries.entrySet()) {
|
||||||
|
if (entry.getValue().equals(msg))
|
||||||
|
return entry;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entry<Timestamp,String> findEntryAfterTime(String msg, Timestamp time) {
|
||||||
|
for (Entry<Timestamp,String> entry : entries.entrySet()) {
|
||||||
|
if (entry.getKey().compareTo(time) >= 0 && entry.getValue().equals(msg))
|
||||||
|
return entry;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String compileMsgToPlayer(Player p, String msg) {
|
||||||
|
return ChatColor.GREEN + "[MobArena] " + ChatColor.WHITE + msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String compileMsgToPlayer(Player p, Msg msg) {
|
||||||
|
return compileMsgToPlayer(p, msg.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user