~ Combined ArenaSerializable with the Arena class. (Less code!)
This commit is contained in:
parent
78673d5da4
commit
8c22316b78
@ -1,14 +1,21 @@
|
|||||||
package nl.Steffion.BlockHunt;
|
package nl.Steffion.BlockHunt;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import nl.Steffion.BlockHunt.Serializables.LocationSerializable;
|
import nl.Steffion.BlockHunt.Serializables.LocationSerializable;
|
||||||
|
import nl.Steffion.BlockHunt.Serializables.M;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
|
import org.bukkit.configuration.serialization.SerializableAs;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class Arena {
|
@SerializableAs("Arena")
|
||||||
|
public class Arena implements ConfigurationSerializable {
|
||||||
public String arenaName;
|
public String arenaName;
|
||||||
public LocationSerializable pos1;
|
public LocationSerializable pos1;
|
||||||
public LocationSerializable pos2;
|
public LocationSerializable pos2;
|
||||||
@ -72,4 +79,49 @@ public class Arena {
|
|||||||
public enum ArenaState {
|
public enum ArenaState {
|
||||||
WAITING, STARTING, INGAME, RESTARTING, DISABLED;
|
WAITING, STARTING, INGAME, RESTARTING, DISABLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> serialize() {
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
map.put("arenaName", arenaName);
|
||||||
|
map.put("pos1", pos1);
|
||||||
|
map.put("pos2", pos2);
|
||||||
|
map.put("maxPlayers", maxPlayers);
|
||||||
|
map.put("minPlayers", minPlayers);
|
||||||
|
map.put("amountSeekersOnStart", amountSeekersOnStart);
|
||||||
|
map.put("timeInLobbyUntilStart", timeInLobbyUntilStart);
|
||||||
|
map.put("waitingTimeSeeker", waitingTimeSeeker);
|
||||||
|
map.put("gameTime", gameTime);
|
||||||
|
map.put("disguiseBlocks", disguiseBlocks);
|
||||||
|
map.put("lobbyWarp", lobbyWarp);
|
||||||
|
map.put("hidersWarp", hidersWarp);
|
||||||
|
map.put("seekersWarp", seekersWarp);
|
||||||
|
map.put("seekersWinCommans", seekersWinCommands);
|
||||||
|
map.put("hidersWinCommands", hidersWinCommands);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static Arena deserialize(Map<String, Object> map) {
|
||||||
|
LocationSerializable loc = new LocationSerializable(
|
||||||
|
Bukkit.getWorld("world"), 0, 0, 0, 0, 0);
|
||||||
|
return new Arena((String) M.g(map, "arenaName", "UNKNOWN_NAME"),
|
||||||
|
(LocationSerializable) M.g(map, "pos1", loc),
|
||||||
|
(LocationSerializable) M.g(map, "pos2", loc), (Integer) M.g(
|
||||||
|
map, "maxPlayers", 12), (Integer) M.g(map,
|
||||||
|
"minPlayers", 3), (Integer) M.g(map,
|
||||||
|
"amountSeekersOnStart", 1), (Integer) M.g(map,
|
||||||
|
"timeInLobbyUntilStart", 90), (Integer) M.g(map,
|
||||||
|
"waitingTimeSeeker", 20), (Integer) M.g(map,
|
||||||
|
"gameTime", 200), (ArrayList<ItemStack>) M.g(map,
|
||||||
|
"disguiseBlocks", new ArrayList<ItemStack>()),
|
||||||
|
(LocationSerializable) M.g(map, "lobbyWarp", loc),
|
||||||
|
(LocationSerializable) M.g(map, "hidersWarp", loc),
|
||||||
|
(LocationSerializable) M.g(map, "seekersWarp", loc),
|
||||||
|
(ArrayList<String>) M.g(map, "seekersWinCommands",
|
||||||
|
new ArrayList<String>()), (ArrayList<String>) M.g(map,
|
||||||
|
"hidersWinCommands", new ArrayList<String>()),
|
||||||
|
new ArrayList<Player>(), ArenaState.WAITING, 0,
|
||||||
|
new ArrayList<Player>());
|
||||||
|
}
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package nl.Steffion.BlockHunt.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import nl.Steffion.BlockHunt.Arena;
|
||||||
import nl.Steffion.BlockHunt.ArenaHandler;
|
import nl.Steffion.BlockHunt.ArenaHandler;
|
||||||
import nl.Steffion.BlockHunt.W;
|
import nl.Steffion.BlockHunt.W;
|
||||||
import nl.Steffion.BlockHunt.Managers.CommandC;
|
import nl.Steffion.BlockHunt.Managers.CommandC;
|
||||||
@ -9,7 +10,6 @@ import nl.Steffion.BlockHunt.Managers.ConfigC;
|
|||||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||||
import nl.Steffion.BlockHunt.Managers.PlayerM;
|
import nl.Steffion.BlockHunt.Managers.PlayerM;
|
||||||
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
||||||
import nl.Steffion.BlockHunt.Serializables.ArenaSerializable;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -31,9 +31,9 @@ public class CMDcreate extends DefaultCMD {
|
|||||||
&& W.pos2.get(player) != null) {
|
&& W.pos2.get(player) != null) {
|
||||||
if (W.pos1.get(player).getWorld()
|
if (W.pos1.get(player).getWorld()
|
||||||
.equals(W.pos2.get(player).getWorld())) {
|
.equals(W.pos2.get(player).getWorld())) {
|
||||||
ArenaSerializable arena = new ArenaSerializable(
|
Arena arena = new Arena(args[1],
|
||||||
args[1], W.pos1.get(player),
|
W.pos1.get(player), W.pos2.get(player), 12,
|
||||||
W.pos2.get(player), 12, 3, 1, 90, 20, 300,
|
3, 1, 90, 20, 300,
|
||||||
new ArrayList<ItemStack>(), null, null,
|
new ArrayList<ItemStack>(), null, null,
|
||||||
null, new ArrayList<String>(),
|
null, new ArrayList<String>(),
|
||||||
new ArrayList<String>(), null, null, 0,
|
new ArrayList<String>(), null, null, 0,
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
package nl.Steffion.BlockHunt.Serializables;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import nl.Steffion.BlockHunt.Arena;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
|
||||||
import org.bukkit.configuration.serialization.SerializableAs;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
@SerializableAs("Arena")
|
|
||||||
public class ArenaSerializable extends Arena implements
|
|
||||||
ConfigurationSerializable {
|
|
||||||
public ArenaSerializable (String arenaName, LocationSerializable pos1,
|
|
||||||
LocationSerializable pos2, int maxPlayers, int minPlayers,
|
|
||||||
int amountSeekersOnStart, int timeInLobbyUntilStart,
|
|
||||||
int waitingTimeSeeker, int gameTime,
|
|
||||||
ArrayList<ItemStack> disguiseBlocks,
|
|
||||||
LocationSerializable lobbyWarp, LocationSerializable hidersWarp,
|
|
||||||
LocationSerializable seekersWarp, List<String> seekersWinCommands,
|
|
||||||
List<String> hidersWinCommands, List<Player> playersInArena,
|
|
||||||
ArenaState gameState, int timer, List<Player> seekers) {
|
|
||||||
super(arenaName, pos1, pos2, maxPlayers, minPlayers,
|
|
||||||
amountSeekersOnStart, timeInLobbyUntilStart, waitingTimeSeeker,
|
|
||||||
gameTime, disguiseBlocks, lobbyWarp, hidersWarp, seekersWarp,
|
|
||||||
seekersWinCommands, hidersWinCommands, playersInArena,
|
|
||||||
gameState, timer, seekers);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, Object> serialize() {
|
|
||||||
Map<String, Object> map = new HashMap<String, Object>();
|
|
||||||
map.put("arenaName", arenaName);
|
|
||||||
map.put("pos1", pos1);
|
|
||||||
map.put("pos2", pos2);
|
|
||||||
map.put("maxPlayers", maxPlayers);
|
|
||||||
map.put("minPlayers", minPlayers);
|
|
||||||
map.put("amountSeekersOnStart", amountSeekersOnStart);
|
|
||||||
map.put("timeInLobbyUntilStart", timeInLobbyUntilStart);
|
|
||||||
map.put("waitingTimeSeeker", waitingTimeSeeker);
|
|
||||||
map.put("gameTime", gameTime);
|
|
||||||
map.put("disguiseBlocks", disguiseBlocks);
|
|
||||||
map.put("lobbyWarp", lobbyWarp);
|
|
||||||
map.put("hidersWarp", hidersWarp);
|
|
||||||
map.put("seekersWarp", seekersWarp);
|
|
||||||
map.put("seekersWinCommans", seekersWinCommands);
|
|
||||||
map.put("hidersWinCommands", hidersWinCommands);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static ArenaSerializable deserialize(Map<String, Object> map) {
|
|
||||||
LocationSerializable loc = new LocationSerializable(
|
|
||||||
Bukkit.getWorld("world"), 0, 0, 0, 0, 0);
|
|
||||||
return new ArenaSerializable((String) M.g(map, "arenaName",
|
|
||||||
"UNKNOWN_NAME"), (LocationSerializable) M.g(map, "pos1", loc),
|
|
||||||
(LocationSerializable) M.g(map, "pos2", loc), (Integer) M.g(
|
|
||||||
map, "maxPlayers", 12), (Integer) M.g(map,
|
|
||||||
"minPlayers", 3), (Integer) M.g(map,
|
|
||||||
"amountSeekersOnStart", 1), (Integer) M.g(map,
|
|
||||||
"timeInLobbyUntilStart", 90), (Integer) M.g(map,
|
|
||||||
"waitingTimeSeeker", 20), (Integer) M.g(map,
|
|
||||||
"gameTime", 200), (ArrayList<ItemStack>) M.g(map,
|
|
||||||
"disguiseBlocks", new ArrayList<ItemStack>()),
|
|
||||||
(LocationSerializable) M.g(map, "lobbyWarp", loc),
|
|
||||||
(LocationSerializable) M.g(map, "hidersWarp", loc),
|
|
||||||
(LocationSerializable) M.g(map, "seekersWarp", loc),
|
|
||||||
(ArrayList<String>) M.g(map, "seekersWinCommands",
|
|
||||||
new ArrayList<String>()), (ArrayList<String>) M.g(map,
|
|
||||||
"hidersWinCommands", new ArrayList<String>()),
|
|
||||||
new ArrayList<Player>(), ArenaState.WAITING, 0,
|
|
||||||
new ArrayList<Player>());
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user