Moving files around
This commit is contained in:
43
src/com/massivecraft/factions/adapter/BoardAdapter.java
Normal file
43
src/com/massivecraft/factions/adapter/BoardAdapter.java
Normal file
@ -0,0 +1,43 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializer;
|
||||
|
||||
import com.massivecraft.factions.TerritoryAccess;
|
||||
import com.massivecraft.factions.entity.Board;
|
||||
|
||||
public class BoardAdapter implements JsonDeserializer<Board>, JsonSerializer<Board>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static BoardAdapter i = new BoardAdapter();
|
||||
public static BoardAdapter get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Board deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
return new Board((Map<PS, TerritoryAccess>) context.deserialize(json, Board.MAP_TYPE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(Board src, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
return context.serialize(src.getMap(), Board.MAP_TYPE);
|
||||
}
|
||||
|
||||
}
|
70
src/com/massivecraft/factions/adapter/BoardMapAdapter.java
Normal file
70
src/com/massivecraft/factions/adapter/BoardMapAdapter.java
Normal file
@ -0,0 +1,70 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentSkipListMap;
|
||||
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonObject;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializer;
|
||||
|
||||
import com.massivecraft.factions.TerritoryAccess;
|
||||
|
||||
public class BoardMapAdapter implements JsonDeserializer<Map<PS, TerritoryAccess>>, JsonSerializer<Map<PS, TerritoryAccess>>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static BoardMapAdapter i = new BoardMapAdapter();
|
||||
public static BoardMapAdapter get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public Map<PS, TerritoryAccess> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
Map<PS, TerritoryAccess> ret = new ConcurrentSkipListMap<PS, TerritoryAccess>();
|
||||
|
||||
JsonObject jsonObject = json.getAsJsonObject();
|
||||
|
||||
for (Entry<String, JsonElement> entry : jsonObject.entrySet())
|
||||
{
|
||||
String[] ChunkCoordParts = entry.getKey().split("[,\\s]+");
|
||||
int chunkX = Integer.parseInt(ChunkCoordParts[0]);
|
||||
int chunkZ = Integer.parseInt(ChunkCoordParts[1]);
|
||||
PS chunk = PS.valueOf(chunkX, chunkZ);
|
||||
|
||||
TerritoryAccess territoryAccess = context.deserialize(entry.getValue(), TerritoryAccess.class);
|
||||
|
||||
ret.put(chunk, territoryAccess);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(Map<PS, TerritoryAccess> src, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
JsonObject ret = new JsonObject();
|
||||
|
||||
for (Entry<PS, TerritoryAccess> entry : src.entrySet())
|
||||
{
|
||||
PS ps = entry.getKey();
|
||||
TerritoryAccess territoryAccess = entry.getValue();
|
||||
|
||||
ret.add(ps.getChunkX().toString() + "," + ps.getChunkZ().toString(), context.serialize(territoryAccess, TerritoryAccess.class));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
29
src/com/massivecraft/factions/adapter/FFlagAdapter.java
Normal file
29
src/com/massivecraft/factions/adapter/FFlagAdapter.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
|
||||
public class FFlagAdapter implements JsonDeserializer<FFlag>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static FFlagAdapter i = new FFlagAdapter();
|
||||
public static FFlagAdapter get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public FFlag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
return FFlag.parse(json.getAsString());
|
||||
}
|
||||
}
|
30
src/com/massivecraft/factions/adapter/FPermAdapter.java
Normal file
30
src/com/massivecraft/factions/adapter/FPermAdapter.java
Normal file
@ -0,0 +1,30 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
|
||||
import com.massivecraft.factions.FPerm;
|
||||
|
||||
public class FPermAdapter implements JsonDeserializer<FPerm>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static FPermAdapter i = new FPermAdapter();
|
||||
public static FPermAdapter get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public FPerm deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
return FPerm.parse(json.getAsString());
|
||||
}
|
||||
}
|
30
src/com/massivecraft/factions/adapter/RelAdapter.java
Normal file
30
src/com/massivecraft/factions/adapter/RelAdapter.java
Normal file
@ -0,0 +1,30 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
|
||||
import com.massivecraft.factions.Rel;
|
||||
|
||||
public class RelAdapter implements JsonDeserializer<Rel>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static RelAdapter i = new RelAdapter();
|
||||
public static RelAdapter get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public Rel deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
return Rel.parse(json.getAsString());
|
||||
}
|
||||
}
|
@ -0,0 +1,141 @@
|
||||
package com.massivecraft.factions.adapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Iterator;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.massivecraft.mcore.xlib.gson.JsonArray;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonDeserializer;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonElement;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonObject;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonParseException;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonPrimitive;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializationContext;
|
||||
import com.massivecraft.mcore.xlib.gson.JsonSerializer;
|
||||
|
||||
import com.massivecraft.factions.Const;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.TerritoryAccess;
|
||||
|
||||
public class TerritoryAccessAdapter implements JsonDeserializer<TerritoryAccess>, JsonSerializer<TerritoryAccess>
|
||||
{
|
||||
//----------------------------------------------//
|
||||
// CONSTANTS
|
||||
//----------------------------------------------//
|
||||
|
||||
public static final String ID = "ID";
|
||||
public static final String OPEN = "open";
|
||||
public static final String FACTIONS = "factions";
|
||||
public static final String FPLAYERS = "fplayers";
|
||||
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static TerritoryAccessAdapter i = new TerritoryAccessAdapter();
|
||||
public static TerritoryAccessAdapter get() { return i; }
|
||||
|
||||
//----------------------------------------------//
|
||||
// OVERRIDE
|
||||
//----------------------------------------------//
|
||||
|
||||
@Override
|
||||
public TerritoryAccess deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
||||
{
|
||||
try
|
||||
{
|
||||
// if stored as simple string, it's just the faction ID and default values are to be used
|
||||
if (json.isJsonPrimitive())
|
||||
{
|
||||
String factionID = json.getAsString();
|
||||
return new TerritoryAccess(factionID);
|
||||
}
|
||||
|
||||
// otherwise, it's stored as an object and all data should be present
|
||||
JsonObject obj = json.getAsJsonObject();
|
||||
if (obj == null) return null;
|
||||
|
||||
String factionID = obj.get(ID).getAsString();
|
||||
boolean hostAllowed = obj.get(OPEN).getAsBoolean();
|
||||
JsonArray factions = obj.getAsJsonArray(FACTIONS);
|
||||
JsonArray fplayers = obj.getAsJsonArray(FPLAYERS);
|
||||
|
||||
TerritoryAccess access = new TerritoryAccess(factionID);
|
||||
access.setHostFactionAllowed(hostAllowed);
|
||||
|
||||
Iterator<JsonElement> iter = factions.iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
access.addFaction(iter.next().getAsString());
|
||||
}
|
||||
|
||||
iter = fplayers.iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
access.addFPlayer(iter.next().getAsString());
|
||||
}
|
||||
|
||||
return access;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.printStackTrace();
|
||||
Factions.get().log(Level.WARNING, "Error encountered while deserializing TerritoryAccess data.");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(TerritoryAccess src, Type typeOfSrc, JsonSerializationContext context)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (src == null) return null;
|
||||
|
||||
// if default values, store as simple string
|
||||
if (src.isDefault())
|
||||
{
|
||||
// if Wilderness (faction "0") and default access values, no need to store it
|
||||
if (src.getHostFactionId().equals(Const.FACTIONID_NONE))
|
||||
return null;
|
||||
|
||||
return new JsonPrimitive(src.getHostFactionId());
|
||||
}
|
||||
|
||||
// otherwise, store all data
|
||||
JsonObject obj = new JsonObject();
|
||||
|
||||
JsonArray factions = new JsonArray();
|
||||
JsonArray fplayers = new JsonArray();
|
||||
|
||||
Iterator<String> iter = src.getFactionIds().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
factions.add(new JsonPrimitive(iter.next()));
|
||||
}
|
||||
|
||||
iter = src.getFPlayerIds().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
fplayers.add(new JsonPrimitive(iter.next()));
|
||||
}
|
||||
|
||||
obj.addProperty(ID, src.getHostFactionId());
|
||||
obj.addProperty(OPEN, src.isHostFactionAllowed());
|
||||
obj.add(FACTIONS, factions);
|
||||
obj.add(FPLAYERS, fplayers);
|
||||
|
||||
return obj;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.printStackTrace();
|
||||
Factions.get().log(Level.WARNING, "Error encountered while serializing TerritoryAccess data.");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user