Added marshalling implementations for most of the flags, fixed configuration issue in WorldConfiguration.

This commit is contained in:
sk89q 2011-04-01 22:21:30 -07:00
parent 145c9750cd
commit 8ffc42d349
9 changed files with 104 additions and 1 deletions

View File

@ -24,7 +24,6 @@
import com.sk89q.worldguard.blacklist.loggers.ConsoleLoggerHandler;
import com.sk89q.worldguard.blacklist.loggers.DatabaseLoggerHandler;
import com.sk89q.worldguard.blacklist.loggers.FileLoggerHandler;
import com.sk89q.worldguard.util.yaml.Configuration;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@ -33,6 +32,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.entity.CreatureType;
import org.bukkit.util.config.Configuration;
/**
* Holds the configuration for individual worlds.

View File

@ -207,6 +207,9 @@ private Map<String, Object> getFlagData(ProtectedRegion region) {
@SuppressWarnings("unchecked")
private <V> void addMarshalledFlag(Map<String, Object> flagData,
Flag<V> flag, Object val) {
if (val == null) {
return;
}
flagData.put(flag.getName(), flag.marshal((V) val));
}

View File

@ -52,5 +52,19 @@ public Boolean parseInput(WorldGuardPlugin plugin, CommandSender sender,
throw new InvalidFlagFormat("Not a yes/no value: " + input);
}
}
@Override
public Boolean unmarshal(Object o) {
if (o instanceof Boolean) {
return (Boolean) o;
} else {
return null;
}
}
@Override
public Object marshal(Boolean o) {
return o;
}
}

View File

@ -46,4 +46,18 @@ public Double parseInput(WorldGuardPlugin plugin, CommandSender sender,
throw new InvalidFlagFormat("Not a number: " + input);
}
}
@Override
public Double unmarshal(Object o) {
if (o instanceof Double) {
return (Double) o;
} else {
return null;
}
}
@Override
public Object marshal(Double o) {
return o;
}
}

View File

@ -46,4 +46,18 @@ public Integer parseInput(WorldGuardPlugin plugin, CommandSender sender,
throw new InvalidFlagFormat("Not a number: " + input);
}
}
@Override
public Integer unmarshal(Object o) {
if (o instanceof Integer) {
return (Integer) o;
} else {
return null;
}
}
@Override
public Object marshal(Integer o) {
return o;
}
}

View File

@ -48,4 +48,14 @@ public Location parseInput(WorldGuardPlugin plugin, CommandSender sender,
throw new InvalidFlagFormat(e.getMessage());
}
}
@Override
public Location unmarshal(Object o) {
return null;
}
@Override
public Object marshal(Location o) {
return null;
}
}

View File

@ -18,6 +18,7 @@
*/
package com.sk89q.worldguard.protection.flags;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
@ -40,5 +41,15 @@ public String parseInput(WorldGuardPlugin plugin, CommandSender sender,
String input) throws InvalidFlagFormat {
return "";
}
@Override
public String unmarshal(Object o) {
return null;
}
@Override
public Object marshal(String o) {
return null;
}
}

View File

@ -63,5 +63,28 @@ public State parseInput(WorldGuardPlugin plugin, CommandSender sender,
throw new InvalidFlagFormat("Not none/allow/deny: " + input);
}
}
@Override
public State unmarshal(Object o) {
String str = o.toString();
if (str.equalsIgnoreCase("allow")) {
return State.ALLOW;
} else if (str.equalsIgnoreCase("deny")) {
return State.DENY;
} else {
return null;
}
}
@Override
public Object marshal(State o) {
if (o == State.ALLOW) {
return "allow";
} else if (o == State.DENY) {
return "deny";
} else {
return null;
}
}
}

View File

@ -40,5 +40,19 @@ public String parseInput(WorldGuardPlugin plugin, CommandSender sender,
String input) throws InvalidFlagFormat {
return input;
}
@Override
public String unmarshal(Object o) {
if (o instanceof String) {
return (String) o;
} else {
return null;
}
}
@Override
public Object marshal(String o) {
return o;
}
}