1
0
mirror of https://e.coding.net/circlecloud/RealBackpacks.git synced 2024-12-04 03:49:07 +00:00

rebuild priject...

Signed-off-by: j502647092 <jtb1@163.com>
This commit is contained in:
j502647092 2015-05-28 20:58:32 +08:00
parent 7b1ea95b81
commit cfce6987c0
5 changed files with 608 additions and 573 deletions

View File

@ -55,28 +55,26 @@ public class RealBackpacks extends JavaPlugin {
public List<String> adminRestrictedView = new ArrayList<String>(); public List<String> adminRestrictedView = new ArrayList<String>();
public List<String> slowedPlayers = new ArrayList<String>(); public List<String> slowedPlayers = new ArrayList<String>();
/* // List key
* List key --------- // 0 = Size
* 0 =Size // 1 = UseRecipe
* 1 = UseRecipe // 2 = id
* 2 = id // 3 = name
* 3 = name // 4 =destroyContents
* 4 =destroyContents // 5 = dropContents
* 5 = dropContents // 6 = dropBackpack
* 6 = dropBackpack // 7 = keepBackpack
* 7 = keepBackpack // 8 = walkSpeedEnabled
* 8 =walkSpeedEnabled // 9 = walkSpeedMultiplier
* 9 = walkSpeedMultiplier // 10 = increasedHungerEnabled
* 10 = increasedHungerEnabled // 11 = hungerBarsToDeplete
* 11 =hungerBarsToDeplete // 12 = hungerBarsToSubtractWhenEating
* 12 = hungerBarsToSubtractWhenEating // 13 = Purchasable
* 13 = Purchasable // 14 = Price
* 14 = Price // 15 = OpenWith
* 15 = OpenWith // 16 = UseWhitelist
* 16 = UseWhitelist // 17 = addGlow
* 17 = addGlow // 18 = Unstackable
* 18 = Unstackable
*/
@Override @Override
public void onEnable() { public void onEnable() {
@ -100,10 +98,10 @@ public class RealBackpacks extends JavaPlugin {
MysqlFunctions.setMysqlFunc(this); MysqlFunctions.setMysqlFunc(this);
RBUtil.setRBUtil(this); RBUtil.setRBUtil(this);
if (!setupEconomy()) { if (!setupEconomy()) {
getLogger().info("Vault not found, economy features disabled."); getLogger().warning("Vault 未找到, 部分功能无法使用...");
vault = false; vault = false;
} else { } else {
getLogger().info("Vault found, economy features enabled."); getLogger().info("Vault 已找到, 启用经济系统...");
} }
setupLists(); setupLists();
setup(); setup();
@ -118,9 +116,9 @@ public class RealBackpacks extends JavaPlugin {
new EntityListener(this), this); new EntityListener(this), this);
getServer().getScheduler().runTaskTimer(this, getServer().getScheduler().runTaskTimer(this,
new WalkSpeedRunnable(this), 20, 20); new WalkSpeedRunnable(this), 20, 20);
getCommand("rb").setExecutor(new MainCommand(this)); getCommand("rb").setExecutor(new MainCommand(this));
getLogger().info("真实背包已加载 By: 喵♂呜."); getLogger().info("真实背包已加载 By: 喵♂呜.");
} }
} }
@ -128,23 +126,20 @@ public class RealBackpacks extends JavaPlugin {
@Override @Override
public FileConfiguration getConfig() { public FileConfiguration getConfig() {
if(Config.getInstance()==null){ if (Config.getInstance() == null) {
Config.load(this); Config.load(this);
} }
return Config.getInstance(); return Config.getInstance();
} }
/* Javadoc
* @see org.bukkit.plugin.java.JavaPlugin#saveConfig()
*/
@Override @Override
public void saveConfig() { public void saveConfig() {
if (Config.getInstance() == null) {
Config.load(this);
}
Config.save(); Config.save();
} }
/* Javadoc
* @see org.bukkit.plugin.java.JavaPlugin#reloadConfig()
*/
@Override @Override
public void reloadConfig() { public void reloadConfig() {
Config.load(this); Config.load(this);

View File

@ -30,59 +30,63 @@ import com.google.common.io.Files;
*/ */
public class FileConfig extends YamlConfiguration { public class FileConfig extends YamlConfiguration {
protected final DumperOptions yamlOptions = new DumperOptions(); public static FileConfig init(File file) {
protected final Representer yamlRepresenter = new YamlRepresenter(); return FileConfig.loadConfiguration(file);
protected final Yaml yaml = new Yaml(new YamlConstructor(), }
yamlRepresenter, yamlOptions);
public static FileConfig init(File file) { public static FileConfig loadConfiguration(File file) {
return FileConfig.loadConfiguration(file); Validate.notNull(file, "File cannot be null");
FileConfig config = new FileConfig();
try {
config.load(file);
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
} catch (InvalidConfigurationException ex) {
Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
} }
return config;
}
public static FileConfig loadConfiguration(File file) { protected final DumperOptions yamlOptions = new DumperOptions();
Validate.notNull(file, "File cannot be null");
FileConfig config = new FileConfig();
try {
config.load(file);
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
} catch (InvalidConfigurationException ex) {
Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
}
return config;
}
@Override protected final Representer yamlRepresenter = new YamlRepresenter();
public String saveToString() {
yamlOptions.setIndent(options().indent());
yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
String header = buildHeader();
String dump = yaml.dump(getValues(false));
if (dump.equals(BLANK_CONFIG)) {
dump = "";
}
return header + dump;
}
public void load(File file) throws FileNotFoundException, IOException, protected final Yaml yaml = new Yaml(new YamlConstructor(),
InvalidConfigurationException { yamlRepresenter, yamlOptions);
Validate.notNull(file, "File cannot be null");
final FileInputStream stream = new FileInputStream(file);
load(new InputStreamReader(stream, Charsets.UTF_8));
}
public void save(File file) throws IOException { @Override
Validate.notNull(file, "File cannot be null"); public void load(File file) throws FileNotFoundException, IOException,
Files.createParentDirs(file); InvalidConfigurationException {
String data = saveToString(); Validate.notNull(file, "File cannot be null");
Writer writer = new OutputStreamWriter(new FileOutputStream(file), final FileInputStream stream = new FileInputStream(file);
Charsets.UTF_8); load(new InputStreamReader(stream, Charsets.UTF_8));
try { }
writer.write(data);
} finally { @Override
writer.close(); public void save(File file) throws IOException {
} Validate.notNull(file, "File cannot be null");
Files.createParentDirs(file);
String data = saveToString();
Writer writer = new OutputStreamWriter(new FileOutputStream(file),
Charsets.UTF_8);
try {
writer.write(data);
} finally {
writer.close();
} }
}
@Override
public String saveToString() {
yamlOptions.setIndent(options().indent());
yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
String header = buildHeader();
String dump = yaml.dump(getValues(false));
if (dump.equals(BLANK_CONFIG)) {
dump = "";
}
return header + dump;
}
} }

View File

@ -2,19 +2,19 @@ package cn.citycraft.RealBackpacks.json;
/* /*
* Copyright (c) 2002 JSON.org * Copyright (c) 2002 JSON.org
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights * in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is * copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in all * The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software. * copies or substantial portions of the Software.
* *
* The Software shall be used for Good, not Evil. * The Software shall be used for Good, not Evil.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@ -35,381 +35,385 @@ import java.util.Map;
public class JSONArray { public class JSONArray {
private final ArrayList<Object> myArrayList; private final ArrayList<Object> myArrayList;
public JSONArray() { public JSONArray() {
this.myArrayList = new ArrayList<Object>(); this.myArrayList = new ArrayList<Object>();
}
public JSONArray(Collection<?> collection) {
this.myArrayList = new ArrayList<Object>();
if (collection != null) {
Iterator<?> iter = collection.iterator();
while (iter.hasNext()) {
this.myArrayList.add(JSONObject.wrap(iter.next()));
}
} }
}
public JSONArray(JSONTokener x) throws JSONException { public JSONArray(JSONTokener x) throws JSONException {
this(); this();
if (x.nextClean() != '[') { if (x.nextClean() != '[')
throw x.syntaxError("A JSONArray text must start with '['"); throw x.syntaxError("A JSONArray text must start with '['");
} if (x.nextClean() != ']') {
if (x.nextClean() != ']') { x.back();
x.back(); for (;;) {
for (;;) { if (x.nextClean() == ',') {
if (x.nextClean() == ',') { x.back();
x.back(); this.myArrayList.add(JSONObject.NULL);
this.myArrayList.add(JSONObject.NULL);
} else {
x.back();
this.myArrayList.add(x.nextValue());
}
switch (x.nextClean()) {
case ';':
case ',':
if (x.nextClean() == ']') {
return;
}
x.back();
break;
case ']':
return;
default:
throw x.syntaxError("Expected a ',' or ']'");
}
}
}
}
public JSONArray(String source) throws JSONException {
this(new JSONTokener(source));
}
public JSONArray(Collection<?> collection) {
this.myArrayList = new ArrayList<Object>();
if (collection != null) {
Iterator<?> iter = collection.iterator();
while (iter.hasNext()) {
this.myArrayList.add(JSONObject.wrap(iter.next()));
}
}
}
public JSONArray(Object array) throws JSONException {
this();
if (array.getClass().isArray()) {
int length = Array.getLength(array);
for (int i = 0; i < length; i += 1) {
this.put(JSONObject.wrap(Array.get(array, i)));
}
} else { } else {
throw new JSONException("JSONArray initial value should be a string or collection or array."); x.back();
this.myArrayList.add(x.nextValue());
} }
} switch (x.nextClean()) {
case ';':
public Object get(int index) throws JSONException { case ',':
Object object = this.opt(index); if (x.nextClean() == ']')
if (object == null) { return;
throw new JSONException("JSONArray[" + index + "] not found."); x.back();
break;
case ']':
return;
default:
throw x.syntaxError("Expected a ',' or ']'");
} }
return object; }
} }
}
public boolean getBoolean(int index) throws JSONException { public JSONArray(Object array) throws JSONException {
Object object = this.get(index); this();
if (object.equals(Boolean.FALSE) || (object instanceof String && ((String) object).equalsIgnoreCase("false"))) { if (array.getClass().isArray()) {
return false; int length = Array.getLength(array);
} else if (object.equals(Boolean.TRUE) || (object instanceof String && ((String) object).equalsIgnoreCase("true"))) { for (int i = 0; i < length; i += 1) {
return true; this.put(JSONObject.wrap(Array.get(array, i)));
}
} else
throw new JSONException(
"JSONArray initial value should be a string or collection or array.");
}
public JSONArray(String source) throws JSONException {
this(new JSONTokener(source));
}
public Object get(int index) throws JSONException {
Object object = this.opt(index);
if (object == null)
throw new JSONException("JSONArray[" + index + "] not found.");
return object;
}
public boolean getBoolean(int index) throws JSONException {
Object object = this.get(index);
if (object.equals(Boolean.FALSE)
|| (object instanceof String && ((String) object)
.equalsIgnoreCase("false")))
return false;
else if (object.equals(Boolean.TRUE)
|| (object instanceof String && ((String) object)
.equalsIgnoreCase("true")))
return true;
throw new JSONException("JSONArray[" + index + "] is not a boolean.");
}
public double getDouble(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).doubleValue()
: Double.parseDouble((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public int getInt(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).intValue()
: Integer.parseInt((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public JSONArray getJSONArray(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof JSONArray)
return (JSONArray) object;
throw new JSONException("JSONArray[" + index + "] is not a JSONArray.");
}
public JSONObject getJSONObject(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof JSONObject)
return (JSONObject) object;
throw new JSONException("JSONArray[" + index + "] is not a JSONObject.");
}
public long getLong(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).longValue()
: Long.parseLong((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public String getString(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof String)
return (String) object;
throw new JSONException("JSONArray[" + index + "] not a string.");
}
public boolean isNull(int index) {
return JSONObject.NULL.equals(this.opt(index));
}
public String join(String separator) throws JSONException {
int len = this.length();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i += 1) {
if (i > 0) {
sb.append(separator);
}
sb.append(JSONObject.valueToString(this.myArrayList.get(i)));
}
return sb.toString();
}
public int length() {
return this.myArrayList.size();
}
public Object opt(int index) {
return (index < 0 || index >= this.length()) ? null : this.myArrayList
.get(index);
}
public boolean optBoolean(int index) {
return this.optBoolean(index, false);
}
public boolean optBoolean(int index, boolean defaultValue) {
try {
return this.getBoolean(index);
} catch (Exception e) {
return defaultValue;
}
}
public double optDouble(int index) {
return this.optDouble(index, Double.NaN);
}
public double optDouble(int index, double defaultValue) {
try {
return this.getDouble(index);
} catch (Exception e) {
return defaultValue;
}
}
public int optInt(int index) {
return this.optInt(index, 0);
}
public int optInt(int index, int defaultValue) {
try {
return this.getInt(index);
} catch (Exception e) {
return defaultValue;
}
}
public JSONArray optJSONArray(int index) {
Object o = this.opt(index);
return o instanceof JSONArray ? (JSONArray) o : null;
}
public JSONObject optJSONObject(int index) {
Object o = this.opt(index);
return o instanceof JSONObject ? (JSONObject) o : null;
}
public long optLong(int index) {
return this.optLong(index, 0);
}
public long optLong(int index, long defaultValue) {
try {
return this.getLong(index);
} catch (Exception e) {
return defaultValue;
}
}
public String optString(int index) {
return this.optString(index, "");
}
public String optString(int index, String defaultValue) {
Object object = this.opt(index);
return JSONObject.NULL.equals(object) ? defaultValue : object
.toString();
}
public JSONArray put(boolean value) {
this.put(value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
public JSONArray put(Collection<?> value) {
this.put(new JSONArray(value));
return this;
}
public JSONArray put(double value) throws JSONException {
Double d = new Double(value);
JSONObject.testValidity(d);
this.put(d);
return this;
}
public JSONArray put(int value) {
this.put(new Integer(value));
return this;
}
public JSONArray put(int index, boolean value) throws JSONException {
this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
public JSONArray put(int index, Collection<?> value) throws JSONException {
this.put(index, new JSONArray(value));
return this;
}
public JSONArray put(int index, double value) throws JSONException {
this.put(index, new Double(value));
return this;
}
public JSONArray put(int index, int value) throws JSONException {
this.put(index, new Integer(value));
return this;
}
public JSONArray put(int index, long value) throws JSONException {
this.put(index, new Long(value));
return this;
}
public JSONArray put(int index, Map<?, ?> value) throws JSONException {
this.put(index, new JSONObject(value));
return this;
}
public JSONArray put(int index, Object value) throws JSONException {
JSONObject.testValidity(value);
if (index < 0)
throw new JSONException("JSONArray[" + index + "] not found.");
if (index < this.length()) {
this.myArrayList.set(index, value);
} else {
while (index != this.length()) {
this.put(JSONObject.NULL);
}
this.put(value);
}
return this;
}
public JSONArray put(long value) {
this.put(new Long(value));
return this;
}
public JSONArray put(Map<?, ?> value) {
this.put(new JSONObject());
return this;
}
public JSONArray put(Object value) {
this.myArrayList.add(value);
return this;
}
public Object remove(int index) {
Object o = this.opt(index);
this.myArrayList.remove(index);
return o;
}
public JSONObject toJSONObject(JSONArray names) throws JSONException {
if (names == null || names.length() == 0 || this.length() == 0)
return null;
JSONObject jo = new JSONObject();
for (int i = 0; i < names.length(); i += 1) {
jo.put(names.getString(i), this.opt(i));
}
return jo;
}
@Override
public String toString() {
try {
return this.toString(0);
} catch (Exception e) {
return null;
}
}
public String toString(int indentFactor) throws JSONException {
StringWriter sw = new StringWriter();
synchronized (sw.getBuffer()) {
return this.write(sw, indentFactor, 0).toString();
}
}
public Writer write(Writer writer) throws JSONException {
return this.write(writer, 0, 0);
}
Writer write(Writer writer, int indentFactor, int indent)
throws JSONException {
try {
boolean commanate = false;
int length = this.length();
writer.write('[');
if (length == 1) {
JSONObject.writeValue(writer, this.myArrayList.get(0),
indentFactor, indent);
} else if (length != 0) {
final int newindent = indent + indentFactor;
for (int i = 0; i < length; i += 1) {
if (commanate) {
writer.write(',');
}
if (indentFactor > 0) {
writer.write('\n');
}
JSONObject.indent(writer, newindent);
JSONObject.writeValue(writer, this.myArrayList.get(i),
indentFactor, newindent);
commanate = true;
} }
throw new JSONException("JSONArray[" + index + "] is not a boolean."); if (indentFactor > 0) {
} writer.write('\n');
public double getDouble(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public int getInt(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public JSONArray getJSONArray(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof JSONArray) {
return (JSONArray) object;
}
throw new JSONException("JSONArray[" + index + "] is not a JSONArray.");
}
public JSONObject getJSONObject(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof JSONObject) {
return (JSONObject) object;
}
throw new JSONException("JSONArray[" + index + "] is not a JSONObject.");
}
public long getLong(int index) throws JSONException {
Object object = this.get(index);
try {
return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object);
} catch (Exception e) {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
public String getString(int index) throws JSONException {
Object object = this.get(index);
if (object instanceof String) {
return (String) object;
}
throw new JSONException("JSONArray[" + index + "] not a string.");
}
public boolean isNull(int index) {
return JSONObject.NULL.equals(this.opt(index));
}
public String join(String separator) throws JSONException {
int len = this.length();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i += 1) {
if (i > 0) {
sb.append(separator);
}
sb.append(JSONObject.valueToString(this.myArrayList.get(i)));
}
return sb.toString();
}
public int length() {
return this.myArrayList.size();
}
public Object opt(int index) {
return (index < 0 || index >= this.length()) ? null : this.myArrayList.get(index);
}
public boolean optBoolean(int index) {
return this.optBoolean(index, false);
}
public boolean optBoolean(int index, boolean defaultValue) {
try {
return this.getBoolean(index);
} catch (Exception e) {
return defaultValue;
}
}
public double optDouble(int index) {
return this.optDouble(index, Double.NaN);
}
public double optDouble(int index, double defaultValue) {
try {
return this.getDouble(index);
} catch (Exception e) {
return defaultValue;
}
}
public int optInt(int index) {
return this.optInt(index, 0);
}
public int optInt(int index, int defaultValue) {
try {
return this.getInt(index);
} catch (Exception e) {
return defaultValue;
}
}
public JSONArray optJSONArray(int index) {
Object o = this.opt(index);
return o instanceof JSONArray ? (JSONArray) o : null;
}
public JSONObject optJSONObject(int index) {
Object o = this.opt(index);
return o instanceof JSONObject ? (JSONObject) o : null;
}
public long optLong(int index) {
return this.optLong(index, 0);
}
public long optLong(int index, long defaultValue) {
try {
return this.getLong(index);
} catch (Exception e) {
return defaultValue;
}
}
public String optString(int index) {
return this.optString(index, "");
}
public String optString(int index, String defaultValue) {
Object object = this.opt(index);
return JSONObject.NULL.equals(object) ? defaultValue : object.toString();
}
public JSONArray put(boolean value) {
this.put(value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
public JSONArray put(Collection<?> value) {
this.put(new JSONArray(value));
return this;
}
public JSONArray put(double value) throws JSONException {
Double d = new Double(value);
JSONObject.testValidity(d);
this.put(d);
return this;
}
public JSONArray put(int value) {
this.put(new Integer(value));
return this;
}
public JSONArray put(long value) {
this.put(new Long(value));
return this;
}
public JSONArray put(Map<?, ?> value) {
this.put(new JSONObject());
return this;
}
public JSONArray put(Object value) {
this.myArrayList.add(value);
return this;
}
public JSONArray put(int index, boolean value) throws JSONException {
this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
public JSONArray put(int index, Collection<?> value) throws JSONException {
this.put(index, new JSONArray(value));
return this;
}
public JSONArray put(int index, double value) throws JSONException {
this.put(index, new Double(value));
return this;
}
public JSONArray put(int index, int value) throws JSONException {
this.put(index, new Integer(value));
return this;
}
public JSONArray put(int index, long value) throws JSONException {
this.put(index, new Long(value));
return this;
}
public JSONArray put(int index, Map<?, ?> value) throws JSONException {
this.put(index, new JSONObject(value));
return this;
}
public JSONArray put(int index, Object value) throws JSONException {
JSONObject.testValidity(value);
if (index < 0) {
throw new JSONException("JSONArray[" + index + "] not found.");
}
if (index < this.length()) {
this.myArrayList.set(index, value);
} else {
while (index != this.length()) {
this.put(JSONObject.NULL);
}
this.put(value);
}
return this;
}
public Object remove(int index) {
Object o = this.opt(index);
this.myArrayList.remove(index);
return o;
}
public JSONObject toJSONObject(JSONArray names) throws JSONException {
if (names == null || names.length() == 0 || this.length() == 0) {
return null;
}
JSONObject jo = new JSONObject();
for (int i = 0; i < names.length(); i += 1) {
jo.put(names.getString(i), this.opt(i));
}
return jo;
}
public String toString() {
try {
return this.toString(0);
} catch (Exception e) {
return null;
}
}
public String toString(int indentFactor) throws JSONException {
StringWriter sw = new StringWriter();
synchronized (sw.getBuffer()) {
return this.write(sw, indentFactor, 0).toString();
}
}
public Writer write(Writer writer) throws JSONException {
return this.write(writer, 0, 0);
}
Writer write(Writer writer, int indentFactor, int indent) throws JSONException {
try {
boolean commanate = false;
int length = this.length();
writer.write('[');
if (length == 1) {
JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent);
} else if (length != 0) {
final int newindent = indent + indentFactor;
for (int i = 0; i < length; i += 1) {
if (commanate) {
writer.write(',');
}
if (indentFactor > 0) {
writer.write('\n');
}
JSONObject.indent(writer, newindent);
JSONObject.writeValue(writer, this.myArrayList.get(i), indentFactor, newindent);
commanate = true;
}
if (indentFactor > 0) {
writer.write('\n');
}
JSONObject.indent(writer, indent);
}
writer.write(']');
return writer;
} catch (IOException e) {
throw new JSONException(e);
} }
JSONObject.indent(writer, indent);
}
writer.write(']');
return writer;
} catch (IOException e) {
throw new JSONException(e);
} }
}
} }

View File

@ -16,130 +16,162 @@ import cn.citycraft.RealBackpacks.RealBackpacks;
public class MysqlFunctions { public class MysqlFunctions {
private static cn.citycraft.RealBackpacks.RealBackpacks plugin; private static cn.citycraft.RealBackpacks.RealBackpacks plugin;
public static void setMysqlFunc(final RealBackpacks plugin) { public static void addBackpackData(final String playerName,
MysqlFunctions.plugin = plugin; final String backpack, final List<String> invString)
} throws SQLException {
plugin.getServer().getScheduler()
public static boolean checkIfTableExists(final String table) { .runTaskAsynchronously(plugin, new Runnable() {
try { @Override
String url = plugin.getUrl()+"?" public void run() {
+ "user=" + plugin.getUser() + "&password=" + plugin.getPass() + "&useUnicode=true&characterEncoding=utf-8"; try {
final Connection conn = DriverManager.getConnection(url); String url = plugin.getUrl()
final Statement state = conn.createStatement(); + "?"
final DatabaseMetaData dbm = conn.getMetaData(); + "user="
final ResultSet tables = dbm.getTables(null, null, "rb_data", null); + plugin.getUser()
state.close(); + "&password="
conn.close(); + plugin.getPass()
if (tables.next()) { + "&useUnicode=true&characterEncoding=utf-8";
return true; final Connection conn = DriverManager
} else { .getConnection(url);
return false; PreparedStatement statement = conn
} .prepareStatement("SELECT EXISTS(SELECT 1 FROM rb_data WHERE player = ? AND backpack = ? LIMIT 1);");
} catch (final SQLException e) { statement.setString(1, playerName);
e.printStackTrace(); statement.setString(2, backpack);
} final ResultSet res = statement.executeQuery();
return false; PreparedStatement state = null;
} if (res.next()) {
if (res.getInt(1) == 1) {
public static void createTables() { state = conn
try { .prepareStatement("UPDATE rb_data SET player=?, backpack=?, inventory=? WHERE player=? AND backpack=?;");
String url = plugin.getUrl()+"?" state.setString(1, playerName);
+ "user=" + plugin.getUser() + "&password=" + plugin.getPass() + "&useUnicode=true&characterEncoding=utf-8"; state.setString(2, backpack);
final Connection conn = DriverManager.getConnection(url); state.setString(3, Serialization
final PreparedStatement state = conn.prepareStatement("CREATE TABLE rb_data (player VARCHAR(16), backpack VARCHAR(20), inventory TEXT)ENGINE=InnoDB DEFAULT CHARSET=UTF8;"); .listToString(invString));
state.executeUpdate(); state.setString(4, playerName);
state.close(); state.setString(5, backpack);
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
}
}
public static void addBackpackData(final String playerName, final String backpack, final List<String> invString) throws SQLException {
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
try {
String url = plugin.getUrl()+"?"
+ "user=" + plugin.getUser() + "&password=" + plugin.getPass() + "&useUnicode=true&characterEncoding=utf-8";
final Connection conn = DriverManager.getConnection(url);
PreparedStatement statement = conn.prepareStatement("SELECT EXISTS(SELECT 1 FROM rb_data WHERE player = ? AND backpack = ? LIMIT 1);");
statement.setString(1, playerName);
statement.setString(2, backpack);
final ResultSet res = statement.executeQuery();
PreparedStatement state = null;
if (res.next()) {
if (res.getInt(1) == 1) {
state = conn.prepareStatement("UPDATE rb_data SET player=?, backpack=?, inventory=? WHERE player=? AND backpack=?;");
state.setString(1, playerName);
state.setString(2, backpack);
state.setString(3, Serialization.listToString(invString));
state.setString(4, playerName);
state.setString(5, backpack);
} else {
state = conn.prepareStatement("INSERT INTO rb_data (player, backpack, inventory) VALUES(?, ?, ?);");
state.setString(1, playerName);
state.setString(2, backpack);
state.setString(3, Serialization.listToString(invString));
}
}
state.executeUpdate();
state.close();
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
}
}
});
}
public static Inventory getBackpackInv(final String playerName, final String backpack) throws SQLException {
Inventory returnInv = null;
try {
String url = plugin.getUrl()+"?"
+ "user=" + plugin.getUser() + "&password=" + plugin.getPass() + "&useUnicode=true&characterEncoding=utf-8";
final Connection conn = DriverManager.getConnection(url);
final PreparedStatement state = conn.prepareStatement("SELECT inventory FROM rb_data WHERE player=? AND backpack=? LIMIT 1;");
state.setString(1, playerName);
state.setString(2, backpack);
final ResultSet res = state.executeQuery();
if (res.next()) {
final String invString = res.getString(1);
if (invString != null) {
returnInv = Serialization.toInventory(Serialization.stringToList(invString), ChatColor.translateAlternateColorCodes('&', plugin.backpackData.get(backpack).get(3)), Integer.parseInt(plugin.backpackData.get(backpack).get(0)));
} else { } else {
returnInv = null; state = conn
.prepareStatement("INSERT INTO rb_data (player, backpack, inventory) VALUES(?, ?, ?);");
state.setString(1, playerName);
state.setString(2, backpack);
state.setString(3, Serialization
.listToString(invString));
} }
}
state.executeUpdate();
state.close();
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
} }
state.close(); }
conn.close(); });
} catch (final SQLException e) { }
e.printStackTrace();
}
return returnInv;
}
public static void delete(final String playerName, final String backpack) { public static boolean checkIfTableExists(final String table) {
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() { try {
@Override String url = plugin.getUrl() + "?" + "user=" + plugin.getUser()
public void run() { + "&password=" + plugin.getPass()
try { + "&useUnicode=true&characterEncoding=utf-8";
String url = plugin.getUrl()+"?" final Connection conn = DriverManager.getConnection(url);
+ "user=" + plugin.getUser() + "&password=" + plugin.getPass() + "&useUnicode=true&characterEncoding=utf-8"; final Statement state = conn.createStatement();
final Connection conn = DriverManager.getConnection(url); final DatabaseMetaData dbm = conn.getMetaData();
final PreparedStatement state = conn.prepareStatement("DELETE FROM rb_data WHERE player = ? AND backpack = ?;"); final ResultSet tables = dbm.getTables(null, null, "rb_data", null);
state.setString(1, playerName); state.close();
state.setString(2, backpack); conn.close();
state.executeUpdate(); if (tables.next())
state.close(); return true;
conn.close(); else
} catch (final SQLException e) { return false;
e.printStackTrace(); } catch (final SQLException e) {
} e.printStackTrace();
}
});
} }
return false;
}
public static void createTables() {
try {
String url = plugin.getUrl() + "?" + "user=" + plugin.getUser()
+ "&password=" + plugin.getPass()
+ "&useUnicode=true&characterEncoding=utf-8";
final Connection conn = DriverManager.getConnection(url);
final PreparedStatement state = conn
.prepareStatement("CREATE TABLE rb_data (player VARCHAR(16), backpack VARCHAR(20), inventory TEXT)ENGINE=InnoDB DEFAULT CHARSET=UTF8;");
state.executeUpdate();
state.close();
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
}
}
public static void delete(final String playerName, final String backpack) {
plugin.getServer().getScheduler()
.runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
try {
String url = plugin.getUrl()
+ "?"
+ "user="
+ plugin.getUser()
+ "&password="
+ plugin.getPass()
+ "&useUnicode=true&characterEncoding=utf-8";
final Connection conn = DriverManager
.getConnection(url);
final PreparedStatement state = conn
.prepareStatement("DELETE FROM rb_data WHERE player = ? AND backpack = ?;");
state.setString(1, playerName);
state.setString(2, backpack);
state.executeUpdate();
state.close();
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
}
}
});
}
public static Inventory getBackpackInv(final String playerName,
final String backpack) throws SQLException {
Inventory returnInv = null;
try {
String url = plugin.getUrl() + "?" + "user=" + plugin.getUser()
+ "&password=" + plugin.getPass()
+ "&useUnicode=true&characterEncoding=utf-8";
final Connection conn = DriverManager.getConnection(url);
final PreparedStatement state = conn
.prepareStatement("SELECT inventory FROM rb_data WHERE player=? AND backpack=? LIMIT 1;");
state.setString(1, playerName);
state.setString(2, backpack);
final ResultSet res = state.executeQuery();
if (res.next()) {
final String invString = res.getString(1);
if (invString != null) {
returnInv = Serialization.toInventory(Serialization
.stringToList(invString), ChatColor
.translateAlternateColorCodes('&',
plugin.backpackData.get(backpack).get(3)),
Integer.parseInt(plugin.backpackData.get(backpack)
.get(0)));
} else {
returnInv = null;
}
}
state.close();
conn.close();
} catch (final SQLException e) {
e.printStackTrace();
}
return returnInv;
}
public static void setMysqlFunc(final RealBackpacks plugin) {
MysqlFunctions.plugin = plugin;
}
} }

View File

@ -1,8 +1,8 @@
name: RealBackpacks name: RealBackpacks
main: cn.citycraft.RealBackpacks.RealBackpacks main: cn.citycraft.RealBackpacks.RealBackpacks
version: 1.6.5 version: 0.1.3
author: Slayr288,喵♂呜 author: Slayr288,喵♂呜
softdepend: [Vault,BVLib] softdepend: [Vault]
commands: commands:
rb: rb:
description: Main commands. description: Main commands.