mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2025-02-23 15:51:30 +01:00
more saving work
This commit is contained in:
parent
eb503dab12
commit
7d10c522ec
Binary file not shown.
@ -1,7 +1,6 @@
|
|||||||
package net.citizensnpcs.storage;
|
package net.citizensnpcs.storage;
|
||||||
|
|
||||||
import java.util.Collection;
|
import net.citizensnpcs.api.DataKey;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface Storage {
|
public interface Storage {
|
||||||
|
|
||||||
@ -9,45 +8,5 @@ public interface Storage {
|
|||||||
|
|
||||||
public void save();
|
public void save();
|
||||||
|
|
||||||
public void removeKey(String key);
|
public DataKey getKey(String root);
|
||||||
|
|
||||||
public String getString(String key);
|
|
||||||
|
|
||||||
public String getString(String key, String value);
|
|
||||||
|
|
||||||
public void setString(String key, String value);
|
|
||||||
|
|
||||||
public int getInt(String key);
|
|
||||||
|
|
||||||
public int getInt(String key, int value);
|
|
||||||
|
|
||||||
public void setInt(String key, int value);
|
|
||||||
|
|
||||||
public double getDouble(String key);
|
|
||||||
|
|
||||||
public double getDouble(String key, double value);
|
|
||||||
|
|
||||||
public void setDouble(String key, double value);
|
|
||||||
|
|
||||||
public long getLong(String key);
|
|
||||||
|
|
||||||
public long getLong(String key, long value);
|
|
||||||
|
|
||||||
public void setLong(String key, long value);
|
|
||||||
|
|
||||||
public boolean getBoolean(String key);
|
|
||||||
|
|
||||||
public boolean getBoolean(String key, boolean value);
|
|
||||||
|
|
||||||
public void setBoolean(String key, boolean value);
|
|
||||||
|
|
||||||
public Object getRaw(String string);
|
|
||||||
|
|
||||||
public void setRaw(String path, Object value);
|
|
||||||
|
|
||||||
public boolean keyExists(String path);
|
|
||||||
|
|
||||||
public Collection<String> getKeys(String string);
|
|
||||||
|
|
||||||
public List<Integer> getIntegerKeys(String string);
|
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package net.citizensnpcs.storage.database;
|
package net.citizensnpcs.storage.database;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.citizensnpcs.api.DataKey;
|
||||||
import net.citizensnpcs.storage.Storage;
|
import net.citizensnpcs.storage.Storage;
|
||||||
|
|
||||||
public class DatabaseStorage implements Storage {
|
public class DatabaseStorage implements Storage {
|
||||||
@ -20,128 +20,125 @@ public class DatabaseStorage implements Storage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeKey(String key) {
|
public DataKey getKey(String root) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getString(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public class DatabaseKey extends DataKey {
|
||||||
public String getString(String key, String value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setString(String key, String value) {
|
public void copy(String to) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getInt(String key) {
|
public boolean getBoolean(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getInt(String key, int value) {
|
public double getDouble(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setInt(String key, int value) {
|
public int getInt(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public List<DataKey> getIntegerSubKeys() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getDouble(String key) {
|
public long getLong(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getDouble(String key, double value) {
|
public DataKey getRelative(String relative) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDouble(String key, double value) {
|
public String getString(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public Iterable<DataKey> getSubKeys() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getLong(String key) {
|
public boolean keyExists(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getLong(String key, long value) {
|
public String name() {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLong(String key, long value) {
|
public void removeKey(String key) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean getBoolean(String key) {
|
public void setBoolean(String key, boolean value) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
}
|
||||||
public boolean getBoolean(String key, boolean value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBoolean(String key, boolean value) {
|
public void setDouble(String key, double value) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getRaw(String string) {
|
public void setInt(String key, int value) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
}
|
||||||
public void setRaw(String path, Object value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public void setLong(String key, long value) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
@Override
|
}
|
||||||
public boolean keyExists(String path) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<String> getKeys(String string) {
|
public void setString(String key, String value) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
}
|
||||||
public List<Integer> getIntegerKeys(String string) {
|
|
||||||
// TODO Auto-generated method stub
|
@Override
|
||||||
return null;
|
public Object getRaw(String key) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRaw(String path, Object value) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,13 +2,16 @@ package net.citizensnpcs.storage.flatfile;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
|
import net.citizensnpcs.api.DataKey;
|
||||||
import net.citizensnpcs.storage.Storage;
|
import net.citizensnpcs.storage.Storage;
|
||||||
import net.citizensnpcs.util.Messaging;
|
import net.citizensnpcs.util.Messaging;
|
||||||
|
|
||||||
@ -28,140 +31,25 @@ public class YamlStorage implements Storage {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load() {
|
public void load() {
|
||||||
// TODO Auto-generated method stub
|
try {
|
||||||
|
config.load(file);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save() {
|
public void save() {
|
||||||
// TODO Auto-generated method stub
|
try {
|
||||||
|
config.save(file);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeKey(String key) {
|
public DataKey getKey(String root) {
|
||||||
// TODO Auto-generated method stub
|
return new YamlKey(root);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getString(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getString(String key, String value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setString(String key, String value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getInt(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getInt(String key, int value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setInt(String key, int value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getDouble(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getDouble(String key, double value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setDouble(String key, double value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getLong(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getLong(String key, long value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setLong(String key, long value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean getBoolean(String key) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean getBoolean(String key, boolean value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setBoolean(String key, boolean value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getRaw(String string) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setRaw(String path, Object value) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean keyExists(String path) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<String> getKeys(String string) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Integer> getIntegerKeys(String string) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create() {
|
private void create() {
|
||||||
@ -173,4 +61,194 @@ public class YamlStorage implements Storage {
|
|||||||
Messaging.log(Level.SEVERE, "Could not create file: " + file.getName());
|
Messaging.log(Level.SEVERE, "Could not create file: " + file.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class YamlKey extends DataKey {
|
||||||
|
private final String current;
|
||||||
|
|
||||||
|
public YamlKey(String root) {
|
||||||
|
current = root;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void copy(String to) {
|
||||||
|
ConfigurationSection root = config.getConfigurationSection(current);
|
||||||
|
if (root == null)
|
||||||
|
return;
|
||||||
|
config.createSection(to, root.getValues(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getBoolean(String key) {
|
||||||
|
String path = getKeyExt(key);
|
||||||
|
if (keyExists(path)) {
|
||||||
|
if (config.getString(path) == null)
|
||||||
|
return config.getBoolean(path);
|
||||||
|
return Boolean.parseBoolean(config.getString(path));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getBoolean(String keyExt, boolean def) {
|
||||||
|
return config.getBoolean(getKeyExt(keyExt), def);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDouble(String key) {
|
||||||
|
String path = getKeyExt(key);
|
||||||
|
if (keyExists(path)) {
|
||||||
|
if (config.getString(path) == null) {
|
||||||
|
if (config.get(path) instanceof Integer)
|
||||||
|
return config.getInt(path);
|
||||||
|
return config.getDouble(path);
|
||||||
|
}
|
||||||
|
return Double.parseDouble(config.getString(path));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDouble(String keyExt, double def) {
|
||||||
|
return config.getDouble(getKeyExt(keyExt), def);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInt(String key) {
|
||||||
|
String path = getKeyExt(key);
|
||||||
|
if (keyExists(path)) {
|
||||||
|
if (config.getString(path) == null)
|
||||||
|
return config.getInt(path);
|
||||||
|
return Integer.parseInt(config.getString(path));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInt(String path, int value) {
|
||||||
|
return config.getInt(getKeyExt(path), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataKey> getIntegerSubKeys() {
|
||||||
|
List<DataKey> res = new ArrayList<DataKey>();
|
||||||
|
ConfigurationSection section = config.getConfigurationSection(current);
|
||||||
|
if (section == null)
|
||||||
|
return res;
|
||||||
|
List<Integer> keys = new ArrayList<Integer>();
|
||||||
|
for (String key : section.getKeys(false)) {
|
||||||
|
try {
|
||||||
|
keys.add(Integer.parseInt(key));
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Collections.sort(keys);
|
||||||
|
for (int key : keys)
|
||||||
|
res.add(getRelative(Integer.toString(key)));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getLong(String key) {
|
||||||
|
String path = getKeyExt(key);
|
||||||
|
if (keyExists(path)) {
|
||||||
|
if (config.getString(path) == null) {
|
||||||
|
if (config.get(path) instanceof Integer)
|
||||||
|
return config.getInt(path);
|
||||||
|
return config.getLong(path);
|
||||||
|
}
|
||||||
|
return Long.parseLong(config.getString(path));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getLong(String keyExt, long def) {
|
||||||
|
return config.getLong(getKeyExt(keyExt), def);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataKey getRelative(String relative) {
|
||||||
|
return new YamlKey(getKeyExt(relative));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getString(String key) {
|
||||||
|
String path = getKeyExt(key);
|
||||||
|
if (keyExists(path)) {
|
||||||
|
return config.get(path).toString();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterable<DataKey> getSubKeys() {
|
||||||
|
List<DataKey> res = new ArrayList<DataKey>();
|
||||||
|
ConfigurationSection section = config.getConfigurationSection(current);
|
||||||
|
if (section == null)
|
||||||
|
return res;
|
||||||
|
for (String key : section.getKeys(false)) {
|
||||||
|
res.add(getRelative(key));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyExists(String key) {
|
||||||
|
return config.get(getKeyExt(key)) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String name() {
|
||||||
|
int last = current.lastIndexOf('.');
|
||||||
|
return current.substring(last == 0 ? 0 : last + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeKey(String key) {
|
||||||
|
config.set(getKeyExt(key), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBoolean(String key, boolean value) {
|
||||||
|
config.set(getKeyExt(key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDouble(String key, double value) {
|
||||||
|
config.set(getKeyExt(key), String.valueOf(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInt(String key, int value) {
|
||||||
|
config.set(getKeyExt(key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLong(String key, long value) {
|
||||||
|
config.set(getKeyExt(key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setString(String key, String value) {
|
||||||
|
config.set(getKeyExt(key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getRaw(String key) {
|
||||||
|
return config.get(getKeyExt(key));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRaw(String key, Object value) {
|
||||||
|
config.set(getKeyExt(key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getKeyExt(String from) {
|
||||||
|
if (from.isEmpty())
|
||||||
|
return current;
|
||||||
|
if (from.charAt(0) == '.')
|
||||||
|
return current.isEmpty() ? from.substring(1, from.length()) : current + from;
|
||||||
|
return current.isEmpty() ? from : current + "." + from;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user