mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2024-10-03 00:57:34 +02:00
Added marshalling implementations for most of the flags, fixed configuration issue in WorldConfiguration.
This commit is contained in:
parent
145c9750cd
commit
8ffc42d349
@ -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.
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user