This commit is contained in:
坏黑
2018-05-08 23:31:26 +08:00
parent 674e993105
commit 19d318a610
89 changed files with 4664 additions and 2410 deletions

View File

@@ -88,7 +88,7 @@ public class AnvilContainerAPI implements Listener {
@EventHandler
public void example(PlayerCommandPreprocessEvent e) {
if (e.getMessage().equals("/anvilexample")) {
if ("/anvilexample".equals(e.getMessage())) {
if (e.getPlayer().hasPermission("taboolib.admin")) {
e.setCancelled(true);
AnvilContainerAPI.send(e.getPlayer(), "EXAMPLE", "在这里输入文本", null);
@@ -98,7 +98,7 @@ public class AnvilContainerAPI implements Listener {
@EventHandler
public void example2(AnvilContainerAPIEvent e) {
if (e.type.equals("EXAMPLE")) {
if ("EXAMPLE".equals(e.type)) {
e.event.getWhoClicked().sendMessage(e.string);
}
}

View File

@@ -19,6 +19,7 @@ import java.util.regex.Pattern;
/**
* The NMS helper for all the Book-API
*/
@SuppressWarnings({"ALL", "AliControlFlowStatementWithoutBraces"})
public final class BookReflection {
private static final String version;
@@ -66,8 +67,10 @@ public final class BookReflection {
craftMetaBookField = craftMetaBookClass.getDeclaredField("pages");
craftMetaBookField.setAccessible(true);
Class<?> chatSerializer = getNmsClass("IChatBaseComponent$ChatSerializer", false);
if (chatSerializer == null)
//noinspection AliControlFlowStatementWithoutBraces
if (chatSerializer == null) {
chatSerializer = getNmsClass("ChatSerializer");
}
chatSerializerA = chatSerializer.getDeclaredMethod("a", String.class);
@@ -281,12 +284,15 @@ public final class BookReflection {
return craftItemStackAsNMSCopy.invoke(null, item);
}
@SuppressWarnings("AliControlFlowStatementWithoutBraces")
public static Class<?> getNmsClass(String className, boolean log) {
try {
return Class.forName("net.minecraft.server." + version + "." + className);
} catch (ClassNotFoundException e) {
if (log)
//noinspection AliControlFlowStatementWithoutBraces
if (log) {
e.printStackTrace();
}
return null;
}
}

View File

@@ -50,10 +50,11 @@ public interface ClickAction {
* @return a new ClickAction
*/
static ClickAction openUrl(String url) {
if (url.startsWith("http://") || url.startsWith("https://"))
if (url.startsWith("http://") || url.startsWith("https://")) {
return new SimpleClickAction(ClickEvent.Action.OPEN_URL, url);
else
} else {
throw new IllegalArgumentException("Invalid url: \"" + url + "\", it should start with http:// or https://");
}
}
/**

View File

@@ -107,8 +107,9 @@ public class PageBuilder {
*/
public static PageBuilder of(BaseComponent... text) {
PageBuilder res = new PageBuilder();
for(BaseComponent b : text)
for(BaseComponent b : text) {
res.add(b);
}
return res;
}
}

View File

@@ -1,25 +1,6 @@
package me.skymc.taboolib.bstats;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.zip.GZIPOutputStream;
import javax.net.ssl.HttpsURLConnection;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
@@ -29,16 +10,29 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import javax.net.ssl.HttpsURLConnection;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.*;
import java.util.concurrent.*;
import java.util.logging.Level;
import java.util.zip.GZIPOutputStream;
/**
* bStats collects some data for plugin authors.
*
* <p>
* Check out https://bStats.org/ to learn more about bStats!
*/
public class Metrics {
static {
// You can use the property to disable the check in your test environment
if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) {
if (System.getProperty("bstats.relocatecheck") == null || !"false".equals(System.getProperty("bstats.relocatecheck"))) {
// Maven's Relocate is clever and changes strings, too. So we have to use this little "trick" ... :D
final String defaultPackage = new String(
new byte[]{'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's', '.', 'b', 'u', 'k', 'k', 'i', 't'});
@@ -50,22 +44,34 @@ public class Metrics {
}
}
// The version of this bStats class
/**
* The version of this bStats class
*/
public static final int B_STATS_VERSION = 1;
// The url to which the data is sent
/**
* The url to which the data is sent
*/
private static final String URL = "https://bStats.org/submitData/bukkit";
// Should failed requests be logged?
/**
* Should failed requests be logged?
*/
private static boolean logFailedRequests;
// The uuid of the server
/**
* The uuid of the server
*/
private static String serverUUID;
// The plugin
/**
* The plugin
*/
private final JavaPlugin plugin;
// A list with all custom charts
/**
* A list with all custom charts
*/
private final List<CustomChart> charts = new ArrayList<>();
/**
@@ -103,7 +109,8 @@ public class Metrics {
).copyDefaults(true);
try {
config.save(configFile);
} catch (IOException ignored) { }
} catch (IOException ignored) {
}
}
// Load the data
@@ -114,10 +121,13 @@ public class Metrics {
// Search for all other bStats Metrics classes to see if we are the first one
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
try {
service.getField("B_STATS_VERSION"); // Our identifier :)
found = true; // We aren't the first
// Our identifier :)
service.getField("B_STATS_VERSION");
// We aren't the first
found = true;
break;
} catch (NoSuchFieldException ignored) { }
} catch (NoSuchFieldException ignored) {
}
}
// Register our service
Bukkit.getServicesManager().register(Metrics.class, this, plugin, ServicePriority.Normal);
@@ -144,22 +154,23 @@ public class Metrics {
* Starts the Scheduler which submits our data every 30 minutes.
*/
private void startSubmitting() {
final Timer timer = new Timer(true); // We use a timer cause the Bukkit scheduler is affected by server lags
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (!plugin.isEnabled()) { // Plugin was disabled
timer.cancel();
return;
}
// Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler
// Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;)
Bukkit.getScheduler().runTask(plugin, () -> submitData());
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("metrics-schedule-pool-%d").daemon(true).build());
executorService.scheduleAtFixedRate(() -> {
if (!plugin.isEnabled()) {
executorService.shutdown();
return;
}
}, 1000*60*5, 1000*60*30);
// Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start
// WARNING: Changing the frequency has no effect but your plugin WILL be blocked/deleted!
// WARNING: Just don't do it!
/*
* Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler
* Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;)
*/
Bukkit.getScheduler().runTask(plugin, this::submitData);
/*
* Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start
* WARNING: Changing the frequency has no effect but your plugin WILL be blocked/deleted!
* WARNING: Just don't do it!
*/
}, 5, 30, TimeUnit.MINUTES);
}
/**
@@ -174,13 +185,16 @@ public class Metrics {
String pluginName = plugin.getDescription().getName();
String pluginVersion = plugin.getDescription().getVersion();
data.put("pluginName", pluginName); // Append the name of the plugin
data.put("pluginVersion", pluginVersion); // Append the version of the plugin
// Append the name of the plugin
data.put("pluginName", pluginName);
// Append the version of the plugin
data.put("pluginVersion", pluginVersion);
JSONArray customCharts = new JSONArray();
for (CustomChart customChart : charts) {
// Add the data of the custom charts
JSONObject chart = customChart.getRequestJsonObject();
if (chart == null) { // If the chart is null, we skip it
// If the chart is null, we skip it
if (chart == null) {
continue;
}
customCharts.add(chart);
@@ -206,7 +220,8 @@ public class Metrics {
? ((Collection<?>) onlinePlayersMethod.invoke(Bukkit.getServer())).size()
: ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length;
} catch (Exception e) {
playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed
// Just use the new method if the Reflection failed
playerAmount = Bukkit.getOnlinePlayers().size();
}
int onlineMode = Bukkit.getOnlineMode() ? 1 : 0;
String bukkitVersion = org.bukkit.Bukkit.getVersion();
@@ -246,20 +261,23 @@ public class Metrics {
// Search for all other bStats Metrics classes to get their plugin data
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
try {
service.getField("B_STATS_VERSION"); // Our identifier :)
// Our identifier :)
service.getField("B_STATS_VERSION");
for (RegisteredServiceProvider<?> provider : Bukkit.getServicesManager().getRegistrations(service)) {
try {
pluginData.add(provider.getService().getMethod("getPluginData").invoke(provider.getProvider()));
} catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { }
} catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) {
}
}
} catch (NoSuchFieldException ignored) { }
} catch (NoSuchFieldException ignored) {
}
}
data.put("plugins", pluginData);
// Create a new thread for the connection to the bStats server
new Thread(() -> {
Executors.newSingleThreadExecutor().execute(() -> {
try {
// Send the data
sendData(data);
@@ -269,7 +287,7 @@ public class Metrics {
plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e);
}
}
}).start();
});
}
/**
@@ -294,9 +312,11 @@ public class Metrics {
connection.setRequestMethod("POST");
connection.addRequestProperty("Accept", "application/json");
connection.addRequestProperty("Connection", "close");
connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request
// We gzip our request
connection.addRequestProperty("Content-Encoding", "gzip");
connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format
// We send our data in JSON format
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION);
// Send data
@@ -306,7 +326,8 @@ public class Metrics {
outputStream.flush();
outputStream.close();
connection.getInputStream().close(); // We don't care about the response - Just send our data :)
// We don't care about the response - Just send our data :)
connection.getInputStream().close();
}
/**
@@ -332,7 +353,9 @@ public class Metrics {
*/
public static abstract class CustomChart {
// The id of the chart
/**
* The id of the chart
*/
final String chartId;
/**
@@ -380,7 +403,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimplePie(String chartId, Callable<String> callable) {
@@ -411,7 +434,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedPie(String chartId, Callable<Map<String, Integer>> callable) {
@@ -455,7 +478,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public DrilldownPie(String chartId, Callable<Map<String, Map<String, Integer>>> callable) {
@@ -504,7 +527,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SingleLineChart(String chartId, Callable<Integer> callable) {
@@ -536,7 +559,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public MultiLineChart(String chartId, Callable<Map<String, Integer>> callable) {
@@ -581,7 +604,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimpleBarChart(String chartId, Callable<Map<String, Integer>> callable) {
@@ -619,7 +642,7 @@ public class Metrics {
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedBarChart(String chartId, Callable<Map<String, int[]>> callable) {

View File

@@ -17,45 +17,45 @@ public class MainCommands implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 0 || args[0].equalsIgnoreCase("help")) {
if (args.length == 0 || "help".equalsIgnoreCase(args[0])) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.HELP", label);
} else if (args[0].equalsIgnoreCase("save")) {
} else if ("save".equalsIgnoreCase(args[0])) {
new SaveCommand(sender, args);
} else if (args[0].equalsIgnoreCase("enchants")) {
} else if ("enchants".equalsIgnoreCase(args[0])) {
new EnchantCommand(sender, args);
} else if (args[0].equalsIgnoreCase("potions")) {
} else if ("potions".equalsIgnoreCase(args[0])) {
new PotionCommand(sender, args);
} else if (args[0].equalsIgnoreCase("flags")) {
} else if ("flags".equalsIgnoreCase(args[0])) {
new FlagCommand(sender, args);
} else if (args[0].equalsIgnoreCase("attributes")) {
} else if ("attributes".equalsIgnoreCase(args[0])) {
new AttributesCommand(sender, args);
} else if (args[0].equalsIgnoreCase("slots")) {
} else if ("slots".equalsIgnoreCase(args[0])) {
new SlotCommand(sender, args);
} else if (args[0].equalsIgnoreCase("importdata")) {
} else if ("importdata".equalsIgnoreCase(args[0])) {
new ImportCommand(sender, args);
} else if (args[0].equalsIgnoreCase("iteminfo")) {
} else if ("iteminfo".equalsIgnoreCase(args[0])) {
new InfoCommand(sender, args);
} else if (args[0].equalsIgnoreCase("itemlist")) {
} else if ("itemlist".equalsIgnoreCase(args[0])) {
new ItemListCommand(sender, args);
} else if (args[0].equalsIgnoreCase("item") || args[0].equalsIgnoreCase("i")) {
} else if ("item".equalsIgnoreCase(args[0]) || "i".equalsIgnoreCase(args[0])) {
new ItemCommand(sender, args);
} else if (args[0].equalsIgnoreCase("setvariable")) {
} else if ("setvariable".equalsIgnoreCase(args[0])) {
new VariableSetCommand(sender, args);
} else if (args[0].equalsIgnoreCase("getvariable")) {
} else if ("getvariable".equalsIgnoreCase(args[0])) {
new VariableGetCommand(sender, args);
} else if (args[0].equalsIgnoreCase("shell") || args[0].equalsIgnoreCase("s")) {
} else if ("shell".equalsIgnoreCase(args[0]) || "s".equalsIgnoreCase(args[0])) {
new ShellCommand(sender, args);
} else if (args[0].equalsIgnoreCase("cycle") || args[0].equalsIgnoreCase("c")) {
} else if ("cycle".equalsIgnoreCase(args[0]) || "c".equalsIgnoreCase(args[0])) {
new CycleCommand(sender, args);
} else if (args[0].equalsIgnoreCase("sounds")) {
} else if ("sounds".equalsIgnoreCase(args[0])) {
new SoundsCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagprefix")) {
} else if ("tagprefix".equalsIgnoreCase(args[0])) {
new TagPrefixCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagsuffix")) {
} else if ("tagsuffix".equalsIgnoreCase(args[0])) {
new TagSuffixCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagdelete")) {
} else if ("tagdelete".equalsIgnoreCase(args[0])) {
new TagDeleteCommand(sender, args);
} else if (args[0].equalsIgnoreCase("itemreload") || args[0].equalsIgnoreCase("ireload")) {
} else if ("itemreload".equalsIgnoreCase(args[0]) || "ireload".equalsIgnoreCase(args[0])) {
ItemUtils.reloadItemCache();
ItemUtils.reloadItemName();
TLocale.sendTo(sender, "COMMANDS.RELOAD.SUCCESS-NORMAL");

View File

@@ -22,6 +22,7 @@ public class InternalArgument {
this.required = required;
}
@Override
public String toString() {
return required ? "§7[§8" + name + "§7]" : "§7<§8" + name + "§7>";
}

View File

@@ -20,9 +20,9 @@ public class Language2Command implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 0) {
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.HELP", label);
} else if (args[0].equalsIgnoreCase("reload")) {
} else if ("reload".equalsIgnoreCase(args[0])) {
reload(sender);
} else if (args[0].equalsIgnoreCase("send")) {
} else if ("send".equalsIgnoreCase(args[0])) {
send(sender, args);
}
return true;
@@ -35,7 +35,7 @@ public class Language2Command implements CommandExecutor {
long time = System.currentTimeMillis();
Language2Value value = getLanguage2Value(args);
if (args[1].equalsIgnoreCase("ALL")) {
if ("ALL".equalsIgnoreCase(args[1])) {
value.broadcast();
} else {
Player player = Bukkit.getPlayerExact(args[1]);

View File

@@ -1,7 +1,6 @@
package me.skymc.taboolib.commands.locale;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.message.MsgUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -22,9 +21,9 @@ public class TabooLibLocaleCommand implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) {
if (args.length == 0) {
TLocale.sendTo(sender, "COMMANDS.TLOCALE.HELP", label);
} else if (args[0].equalsIgnoreCase("send")) {
} else if ("send".equalsIgnoreCase(args[0])) {
send(sender, args);
} else if (args[0].equalsIgnoreCase("reload")) {
} else if ("reload".equalsIgnoreCase(args[0])) {
reload(sender);
} else {
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
@@ -40,7 +39,7 @@ public class TabooLibLocaleCommand implements CommandExecutor {
long time = System.currentTimeMillis();
List<Player> target = new ArrayList<>();
if (args[1].equalsIgnoreCase("all")) {
if ("all".equalsIgnoreCase(args[1])) {
target.addAll(Bukkit.getOnlinePlayers());
} else {
Player player = Bukkit.getPlayerExact(args[1]);

View File

@@ -141,6 +141,7 @@ public class TabooLibPluginCommand extends InternalCommandExecutor {
} else if (PluginUtils.isIgnored(plugin)) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.RELOAD.INVALID-PLUGIN-IGNORED", name);
} else {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.RELOAD.TRY-RELOAD");
PluginUtils.reload(plugin);
}
}

View File

@@ -62,7 +62,7 @@ public class SaveCommand extends SubCommand {
@SuppressWarnings("deprecation")
@Override
public boolean after(String message) {
if (message.equalsIgnoreCase("yes")) {
if ("yes".equalsIgnoreCase(message)) {
saveItem(args[1], ((Player) sender).getItemInHand());
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.SUCCESS", args[1]);
} else {

View File

@@ -1,38 +1,38 @@
package me.skymc.taboolib.commands.sub;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.command.CommandSender;
import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.database.GlobalDataManager;
import me.skymc.taboolib.message.MsgUtils;
import org.bukkit.command.CommandSender;
/**
* @author sky
*/
public class VariableGetCommand extends SubCommand {
public VariableGetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
public VariableGetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-ERROR-TYPE");
return;
}
Long time = System.currentTimeMillis();
String value = null;
if (args[1].equals("-s")) {
value = GlobalDataManager.getVariable(args[2], null);
}
else if (args[1].equals("-a")) {
value = GlobalDataManager.getVariableAsynchronous(args[2], null);
}
if (args.length < 3) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-RESULT", value == null ? "null" : value);
}
if (!("-a".equals(args[1]) || "-s".equals(args[1]))) {
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-ERROR-TYPE");
return;
}
Long time = System.currentTimeMillis();
String value = null;
if ("-s".equals(args[1])) {
value = GlobalDataManager.getVariable(args[2], null);
} else if ("-a".equals(args[1])) {
value = GlobalDataManager.getVariableAsynchronous(args[2], null);
}
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-RESULT", value == null ? "null" : value);
}
}

View File

@@ -1,38 +1,35 @@
package me.skymc.taboolib.commands.sub;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.command.CommandSender;
import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.database.GlobalDataManager;
import me.skymc.taboolib.message.MsgUtils;
import org.bukkit.command.CommandSender;
public class VariableSetCommand extends SubCommand {
public VariableSetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 4) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
public VariableSetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
if (args.length < 4) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
if (!("-a".equals(args[1]) || "-s".equals(args[1]))) {
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-ERROR-TYPE");
return;
}
Long time = System.currentTimeMillis();
String value = getArgs(3);
if (args[1].equals("-s")) {
GlobalDataManager.setVariable(args[2], value);
}
else if (args[1].equals("-a")) {
GlobalDataManager.setVariableAsynchronous(args[2], value);
}
return;
}
Long time = System.currentTimeMillis();
String value = getArgs(3);
if ("-s".equals(args[1])) {
GlobalDataManager.setVariable(args[2], value);
} else if ("-a".equals(args[1])) {
GlobalDataManager.setVariableAsynchronous(args[2], value);
}
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
setReturn(true);
}
setReturn(true);
}
}

View File

@@ -9,13 +9,13 @@ public class CycleCommand extends SubCommand {
public CycleCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length > 1) {
if (args[1].equalsIgnoreCase("list")) {
if ("list".equalsIgnoreCase(args[1])) {
new CycleListCommand(sender, args);
} else if (args[1].equalsIgnoreCase("info")) {
} else if ("info".equalsIgnoreCase(args[1])) {
new CycleInfoCommand(sender, args);
} else if (args[1].equalsIgnoreCase("reset")) {
} else if ("reset".equalsIgnoreCase(args[1])) {
new CycleResetCommand(sender, args);
} else if (args[1].equalsIgnoreCase("update")) {
} else if ("update".equalsIgnoreCase(args[1])) {
new CycleUpdateCommand(sender, args);
}
} else {

View File

@@ -2,7 +2,6 @@ package me.skymc.taboolib.commands.sub.shell;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.message.MsgUtils;
import org.bukkit.command.CommandSender;
public class ShellCommand extends SubCommand {
@@ -10,9 +9,9 @@ public class ShellCommand extends SubCommand {
public ShellCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length > 1) {
if (args[1].equalsIgnoreCase("load")) {
if ("load".equalsIgnoreCase(args[1])) {
new ShellLoadCommand(sender, args);
} else if (args[1].equalsIgnoreCase("unload")) {
} else if ("unload".equalsIgnoreCase(args[1])) {
new ShellUnloadCommand(sender, args);
}
} else {

View File

@@ -29,7 +29,7 @@ public class GlobalDataManager {
public static String getVariable(String name, String defaultVariable) {
if (Main.getStorageType() == StorageType.SQL) {
Object obj = Main.getConnection().getValueLast(Main.getTablePrefix() + "_plugindata", "name", name, "variable");
return obj != null ? obj.toString().equals("null") ? defaultVariable : obj.toString() : defaultVariable;
return obj != null ? "null".equals(obj.toString()) ? defaultVariable : obj.toString() : defaultVariable;
}
else {
return data.contains(name) ? data.getString(name) : defaultVariable;
@@ -46,7 +46,7 @@ public class GlobalDataManager {
public static String getVariableAsynchronous(String name, String defaultVariable) {
if (Main.getStorageType() == StorageType.SQL) {
SQLVariable variable = SQLMethod.getSQLVariable(name);
return variable == null ? defaultVariable : variable.getVariable().equals("null") ? defaultVariable : variable.getVariable();
return variable == null ? defaultVariable : "null".equals(variable.getVariable()) ? defaultVariable : variable.getVariable();
}
else {
return getVariable(name, defaultVariable);
@@ -138,7 +138,7 @@ public class GlobalDataManager {
if (Main.getStorageType() == StorageType.SQL) {
LinkedList<HashMap<String, Object>> list = Main.getConnection().getValues(Main.getTablePrefix() + "_plugindata", "id", -1, false, "name", "variable");
for (HashMap<String, Object> _map : list) {
if (!_map.get("variable").toString().equals("null")) {
if (!"null".equals(_map.get("variable").toString())) {
map.put(_map.get("name").toString(), _map.get("variable").toString());
}
}
@@ -160,7 +160,7 @@ public class GlobalDataManager {
if (Main.getStorageType() == StorageType.SQL) {
HashMap<String, String> map = new HashMap<>();
for (SQLVariable variable : SQLMethod.getSQLVariables()) {
if (!variable.getVariable().equals("null")) {
if (!"null".equals(variable.getVariable())) {
map.put(variable.getName(), variable.getVariable());
}
}
@@ -287,7 +287,7 @@ public class GlobalDataManager {
public void run() {
LinkedList<HashMap<String, Object>> list = Main.getConnection().getValues(Main.getTablePrefix() + "_plugindata", "id", -1, false, "name", "variable", "upgrade");
for (HashMap<String, Object> _map : list) {
if (!_map.get("variable").toString().equals("null")) {
if (!"null".equals(_map.get("variable").toString())) {
variables.put(_map.get("name").toString(), new SQLVariable(_map.get("name").toString(), _map.get("variable").toString(), _map.get("upgrade").toString()));
}
}
@@ -326,7 +326,7 @@ public class GlobalDataManager {
// 如果变量不是由本服更新
if (!value.get("upgrade").equals(variables.get(name).getUpgradeUID())) {
// 如果变量是空
if (value.get("variable").equals("null")) {
if ("null".equals(value.get("variable"))) {
// 删除变量
variables.remove(name);
}
@@ -337,7 +337,7 @@ public class GlobalDataManager {
}
}
// 如果变量存在则下载到本地
else if (!value.get("variable").equals("null")) {
else if (!"null".equals(value.get("variable"))) {
variables.put(value.get("name").toString(), new SQLVariable(value.get("name").toString(), value.get("variable").toString(), value.get("upgrade").toString()));
}
}

View File

@@ -10,8 +10,9 @@ import org.bukkit.entity.Player;
public class ActionUtils {
public static void send(Player player, String action) {
if (player == null)
if (player == null) {
return;
}
try {
ActionBar.sendActionBar(player, action);
} catch (Throwable ignored) {

View File

@@ -68,7 +68,9 @@ public class EntityTag {
* @param value 值
*/
public void set(String key, Object value, Entity... entities) {
for (Entity entity : entities) set(key, value, entity);
for (Entity entity : entities) {
set(key, value, entity);
}
}
/**
@@ -78,7 +80,9 @@ public class EntityTag {
* @param value 值
*/
public void set(String key, Object value, List<Entity> entities) {
for (Entity entity : entities) set(key, value, entity);
for (Entity entity : entities) {
set(key, value, entity);
}
}
/**
@@ -104,7 +108,9 @@ public class EntityTag {
* @param entities 实体
*/
public void remove(String key, Entity... entities) {
for (Entity entity : entities) remove(key, entity);
for (Entity entity : entities) {
remove(key, entity);
}
}
/**
@@ -114,7 +120,9 @@ public class EntityTag {
* @param entities 实体
*/
public void remove(String key, List<Entity> entities) {
for (Entity entity : entities) remove(key, entity);
for (Entity entity : entities) {
remove(key, entity);
}
}
/**

View File

@@ -61,7 +61,7 @@ public class ConfigUtils {
public static String mapToYaml(Map<String, Object> map) {
String dump = YAML.dump(map);
if (dump.equals("{}\n")) {
if ("{}\n".equals(dump)) {
dump = "";
}
return dump;
@@ -92,13 +92,17 @@ public class ConfigUtils {
public static <T> T mapToObj(Map<String, Object> map, T obj) {
Class<?> clazz = obj.getClass();
map.forEach((string, value) -> Ref.getFieldBySerializedName(clazz, string).ifPresent(field -> {
if (!field.isAccessible())
if (!field.isAccessible()) {
field.setAccessible(true);
}
try {
if (Property.class.isAssignableFrom(field.getType())) {
Property<Object> property = (Property) field.get(obj);
if (property != null) property.set(value);
else field.set(obj, Property.of(value));
if (property != null) {
property.set(value);
} else {
field.set(obj, Property.of(value));
}
} else {
field.set(obj, value);
}
@@ -125,11 +129,16 @@ public class ConfigUtils {
}
for (Field field : Ref.getDeclaredFields(object.getClass(), excludedModifiers, false)) {
try {
if (!field.isAccessible()) field.setAccessible(true);
if (!field.isAccessible()) {
field.setAccessible(true);
}
Object obj = field.get(object);
if (obj instanceof Property) obj = ((Property) obj).get();
if (obj instanceof ConfigurationSection)
if (obj instanceof Property) {
obj = ((Property) obj).get();
}
if (obj instanceof ConfigurationSection) {
obj = objToMap(((ConfigurationSection) obj).getValues(false), excludedModifiers);
}
map.put(Ref.getSerializedName(field), obj);
} catch (IllegalAccessException ignored) {
}

View File

@@ -496,7 +496,7 @@ public class ItemUtils {
_attr.setInteger("UUIDMost", NumberUtils.getRandom().nextInt(Integer.MAX_VALUE));
_attr.setInteger("UUIDLeast", NumberUtils.getRandom().nextInt(Integer.MAX_VALUE));
_attr.setString("Name", asAttribute(name));
if (!hand.equals("all")) {
if (!"all".equals(hand)) {
_attr.setString("Slot", hand);
}
} catch (Exception ignored) {
@@ -535,7 +535,7 @@ public class ItemUtils {
_attr.setInteger("UUIDMost", NumberUtils.getRandom().nextInt(Integer.MAX_VALUE));
_attr.setInteger("UUIDLeast", NumberUtils.getRandom().nextInt(Integer.MAX_VALUE));
_attr.setString("Name", asAttribute(name));
if (!hand.equals("all")) {
if (!"all".equals(hand)) {
_attr.setString("Slot", hand);
}
} catch (NumberFormatException ignored) {

View File

@@ -149,7 +149,9 @@ public class NBTCompound {
public NBTCompound getCompound(String name) {
NBTCompound next = new NBTCompound(this, name);
if (NBTReflectionUtil.valideCompound(next)) return next;
if (NBTReflectionUtil.valideCompound(next)) {
return next;
}
return null;
}
@@ -158,7 +160,9 @@ public class NBTCompound {
}
public NBTType getType(String name) {
if (TabooLib.getVerint() == 10700) return NBTType.NBTTagEnd;
if (TabooLib.getVerint() == 10700) {
return NBTType.NBTTagEnd;
}
return NBTType.valueOf(NBTReflectionUtil.getType(this, name));
}

View File

@@ -303,8 +303,9 @@ public class NBTReflectionUtil {
method = c.getMethod(MethodNames.getEntityNbtGetterMethodName(), getNBTTagCompound());
Object nbt = getNBTTagCompound().newInstance();
Object answer = method.invoke(nmsitem, nbt);
if (answer == null)
if (answer == null) {
answer = nbt;
}
return answer;
} catch (Exception e) {
MsgUtils.warn("NBT 操作出现异常: §7" + e.getMessage());
@@ -334,8 +335,9 @@ public class NBTReflectionUtil {
method = getTileEntity().getMethod(MethodNames.getTileDataMethodName(), getNBTTagCompound());
Object tag = getNBTTagCompound().newInstance();
Object answer = method.invoke(o, tag);
if (answer == null)
if (answer == null) {
answer = tag;
}
return answer;
} catch (Exception e) {
MsgUtils.warn("NBT 操作出现异常: §7" + e.getMessage());
@@ -381,7 +383,9 @@ public class NBTReflectionUtil {
if (nbttag == null) {
nbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(nbttag, comp);
Method method;
try {
@@ -421,7 +425,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -442,7 +448,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -459,7 +467,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -476,7 +486,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -497,7 +509,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -514,7 +528,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -535,7 +551,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -552,7 +570,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -573,7 +593,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -590,7 +612,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -611,7 +635,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -628,7 +654,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -649,7 +677,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -666,7 +696,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -687,7 +719,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -704,7 +738,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -725,7 +761,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -742,7 +780,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -763,7 +803,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -780,7 +822,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -797,7 +841,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return 0;
if (!valideCompound(comp)) {
return 0;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -818,7 +864,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -835,7 +883,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -876,7 +926,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -910,7 +962,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return;
if (!valideCompound(comp)) {
return;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -927,7 +981,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {
@@ -945,7 +1001,9 @@ public class NBTReflectionUtil {
if (rootnbttag == null) {
rootnbttag = getNewNBTTag();
}
if (!valideCompound(comp)) return null;
if (!valideCompound(comp)) {
return null;
}
Object workingtag = gettoCompount(rootnbttag, comp);
Method method;
try {

View File

@@ -26,9 +26,11 @@ public enum NBTType {
}
public static NBTType valueOf(int id) {
for (NBTType t : values())
if (t.getId() == id)
for (NBTType t : values()) {
if (t.getId() == id) {
return t;
}
}
return NBTType.NBTTagEnd;
}

View File

@@ -32,7 +32,7 @@ public class Cookie {
while (x.more()) {
name = unescape(x.nextTo("=;"));
if (x.next() != '=') {
if (name.equals("secure")) {
if ("secure".equals(name)) {
value = Boolean.TRUE;
} else {
throw x.syntaxError("Missing '=' in cookie parameter.");

View File

@@ -86,11 +86,11 @@ public class JSONArray {
Object object = this.get(index);
if (object.equals(Boolean.FALSE) ||
(object instanceof String &&
((String) object).equalsIgnoreCase("false"))) {
"false".equalsIgnoreCase((String) object))) {
return false;
} else if (object.equals(Boolean.TRUE) ||
(object instanceof String &&
((String) object).equalsIgnoreCase("true"))) {
"true".equalsIgnoreCase((String) object))) {
return true;
}
throw new JSONException("JSONArray[" + index + "] is not a boolean.");

View File

@@ -46,7 +46,7 @@ public class JSONML {
break;
case '[':
token = x.nextToken();
if (token.equals("CDATA") && x.next() == '[') {
if ("CDATA".equals(token) && x.next() == '[') {
if (ja != null) {
ja.put(x.nextCDATA());
}

View File

@@ -109,7 +109,7 @@ public class JSONObject {
this.populateMap(bean);
}
public JSONObject(Object object, String names[]) {
public JSONObject(Object object, String[] names) {
this();
Class c = object.getClass();
for (String name : names) {
@@ -210,11 +210,11 @@ public class JSONObject {
Object object = this.get(key);
if (object.equals(Boolean.FALSE) ||
(object instanceof String &&
((String) object).equalsIgnoreCase("false"))) {
"false".equalsIgnoreCase((String) object))) {
return false;
} else if (object.equals(Boolean.TRUE) ||
(object instanceof String &&
((String) object).equalsIgnoreCase("true"))) {
"true".equalsIgnoreCase((String) object))) {
return true;
}
throw new JSONException("JSONObject[" + quote(key) +
@@ -322,16 +322,16 @@ public class JSONObject {
public static Object stringToValue(String string) {
Double d;
if (string.equals("")) {
if ("".equals(string)) {
return string;
}
if (string.equalsIgnoreCase("true")) {
if ("true".equalsIgnoreCase(string)) {
return Boolean.TRUE;
}
if (string.equalsIgnoreCase("false")) {
if ("false".equalsIgnoreCase(string)) {
return Boolean.FALSE;
}
if (string.equalsIgnoreCase("null")) {
if ("null".equalsIgnoreCase(string)) {
return JSONObject.NULL;
}
char b = string.charAt(0);

View File

@@ -11,7 +11,7 @@ public class JSONWriter {
protected char mode;
private final JSONObject stack[];
private final JSONObject[] stack;
private int top;

View File

@@ -42,8 +42,9 @@ public class JSONFormatter {
}
public JSONFormatter append(JSONFormatter json) {
if (json.ja.length() == 0)
if (json.ja.length() == 0) {
return this;
}
try {
if (newline && json.newline) {
all.addAll(json.all);
@@ -76,8 +77,9 @@ public class JSONFormatter {
}
public JSONFormatter newLine(int amount) {
for (int i = 0; i < amount; i++)
for (int i = 0; i < amount; i++) {
newLine();
}
return this;
}
@@ -104,8 +106,9 @@ public class JSONFormatter {
public String toJSON() {
JSONObject jo = new JSONObject();
try {
if (ja.length() > 0)
if (ja.length() > 0) {
jo.put("extra", ja);
}
jo.put("text", "");
} catch (Exception e) {
e.printStackTrace();
@@ -118,14 +121,16 @@ public class JSONFormatter {
try {
for (JSONArray ja : all) {
JSONObject jo = new JSONObject();
if (ja.length() > 0)
if (ja.length() > 0) {
jo.put("extra", ja);
}
jo.put("text", "");
list.add(jo.toString());
}
JSONObject jo = new JSONObject();
if (ja.length() > 0)
if (ja.length() > 0) {
jo.put("extra", ja);
}
jo.put("text", "");
list.add(jo.toString());
return list;
@@ -163,10 +168,12 @@ public class JSONFormatter {
}
private void add(Object jo) {
if (ja == null)
if (ja == null) {
ja = new JSONArray();
if (jo != null)
}
if (jo != null) {
ja.put(jo);
}
}
private JSONFormatter append(String text, BuilderMaker bm) {
@@ -297,8 +304,9 @@ public class JSONFormatter {
private static boolean check(Object... o) {
for (Object a : o) {
if (a == null)
if (a == null) {
return false;
}
}
return true;
}
@@ -369,24 +377,32 @@ public class JSONFormatter {
private JSONObject toString(String color, BuilderHelper bh) {
String string = sb.toString();
if (!changed)
if (!changed) {
return null;
if (string.length() == 0)
}
if (string.length() == 0) {
return null;
}
JSONObject jo = new JSONObject();
try {
if (!color.equals(""))
if (!"".equals(color)) {
jo.put("color", color);
if (bold)
}
if (bold) {
jo.put("bold", true);
if (italic)
}
if (italic) {
jo.put("italic", true);
if (magic)
}
if (magic) {
jo.put("obfuscated", true);
if (strikethrough)
}
if (strikethrough) {
jo.put("strikethrough", true);
if (underline)
}
if (underline) {
jo.put("underlined", true);
}
bh.add(jo);
jo.put("text", string);
} catch (Exception e) {
@@ -407,8 +423,9 @@ public class JSONFormatter {
return toString(color, new BuilderHelper() {
@Override
public void add(JSONObject jo) throws Exception {
if (event.getEvent().length() > 1)
if (event.getEvent().length() > 1) {
jo.put("hoverEvent", event.getEvent());
}
}
});
}
@@ -417,8 +434,9 @@ public class JSONFormatter {
return toString(color, new BuilderHelper() {
@Override
public void add(JSONObject jo) throws Exception {
if (event.getEvent().length() > 1)
if (event.getEvent().length() > 1) {
jo.put("clickEvent", event.getEvent());
}
}
});
}
@@ -427,10 +445,12 @@ public class JSONFormatter {
return toString(color, new BuilderHelper() {
@Override
public void add(JSONObject jo) throws Exception {
if (hevent.getEvent().length() > 1)
if (hevent.getEvent().length() > 1) {
jo.put("hoverEvent", hevent.getEvent());
if (cevent.getEvent().length() > 1)
}
if (cevent.getEvent().length() > 1) {
jo.put("clickEvent", cevent.getEvent());
}
}
});
}

View File

@@ -18,7 +18,7 @@ public class ListenerPlayerCommand implements Listener {
@EventHandler
public void cmd(ServerCommandEvent e) {
if (e.getCommand().equals("savefile")) {
if ("savefile".equals(e.getCommand())) {
if (TabooLib.getVerint() > 10700) {
e.setCancelled(true);
}
@@ -30,7 +30,7 @@ public class ListenerPlayerCommand implements Listener {
@SuppressWarnings("deprecation")
@EventHandler
public void cmd(PlayerCommandPreprocessEvent e) {
if (e.getMessage().equals("/unbreakable") && PermissionUtils.hasPermission(e.getPlayer(), "taboolib.unbreakable")) {
if ("/unbreakable".equals(e.getMessage()) && PermissionUtils.hasPermission(e.getPlayer(), "taboolib.unbreakable")) {
e.setCancelled(true);
NBTItem nbti = new NBTItem(e.getPlayer().getItemInHand());

View File

@@ -47,7 +47,9 @@ public class LocationUtils {
@Deprecated
public static Block findBlockByLocation(Location l) {
while (l.getY() < 255 && l.getBlock().getType() != Material.AIR) l.add(0, 1, 0);
while (l.getY() < 255 && l.getBlock().getType() != Material.AIR) {
l.add(0, 1, 0);
}
return l.getY() < 255 && l.getBlock().getType() == Material.AIR ? l.getBlock() : null;
}

View File

@@ -38,7 +38,7 @@ public class ChatCatcher implements Listener {
if (playerdata.containsKey(e.getPlayer().getName()) && playerdata.get(e.getPlayer().getName()).size() > 0) {
e.setCancelled(true);
if (e.getMessage().equalsIgnoreCase("quit()")) {
if ("quit()".equalsIgnoreCase(e.getMessage())) {
// 退出引导
playerdata.get(e.getPlayer().getName()).removeFirst().cancel();
// 清理数据

View File

@@ -54,7 +54,7 @@ public class MsgUtils {
@Deprecated
public static String noPe() {
String s = Main.getInst().getConfig().getString("NO-PERMISSION-MESSAGE").replaceAll("&", "§");
if (s.equals("")) {
if ("".equals(s)) {
s = "§cCONFIG ERROR §8(NO-PERMISSION-MESSAGE)";
}
return s;
@@ -63,7 +63,7 @@ public class MsgUtils {
@Deprecated
public static String noClaim(String a) {
String s = Main.getInst().getConfig().getString("NO-CLAIM-MESSAGE").replaceAll("&", "§").replaceAll("%s%", a);
if (s.equals("")) {
if ("".equals(s)) {
s = "§cCONFIG ERROR §8(NO-CLAIM-MESSAGE)";
}
return s;

View File

@@ -6,49 +6,44 @@ import java.lang.reflect.Method;
@Deprecated
public class MethodsUtils {
public static boolean checkUser(String packagename, String current)
{
return current.substring(0, 8).equals(packagename);
}
@SuppressWarnings("rawtypes")
public static <T> Object[] a(T classname, String methodname, Class[] classes, Object[] objects)
{
if (!checkUser(new String(new byte[] { 'm', 'e', '.', 's', 'k', 'y', 'm', 'c' }), new Exception().getStackTrace()[1].getClassName()))
{
throw new Error("未经允许的方法调用");
}
Class<?> clazz = classname.getClass();
Method method = null;
try {
method = clazz.getDeclaredMethod(methodname, classes);
method.setAccessible(true);
return new Object[] { method.invoke(classname, objects) };
} catch (SecurityException | InvocationTargetException | IllegalAccessException | NoSuchMethodException | IllegalArgumentException e) {
e.printStackTrace();
}
return null;
}
public static <T> Object b(T classname, String fieldname)
{
if (!checkUser(new String(new byte[] { 'm', 'e', '.', 's', 'k', 'y', 'm', 'c' }), new Exception().getStackTrace()[1].getClassName()))
{
throw new Error("未经允许的方法调用");
}
public static boolean checkUser(String packagename, String current) {
return current.substring(0, 8).equals(packagename);
}
Class<?> clazz = classname.getClass();
Field field = null;
Object object = null;
try {
field = clazz.getDeclaredField(fieldname);
field.setAccessible(true);
object = field.get(classname);
} catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException | SecurityException e) {
e.printStackTrace();
}
return object;
}
@SuppressWarnings("rawtypes")
public static <T> Object[] a(T classname, String methodname, Class[] classes, Object[] objects) {
if (!checkUser(new String(new byte[]{'m', 'e', '.', 's', 'k', 'y', 'm', 'c'}), new Exception().getStackTrace()[1].getClassName())) {
throw new Error("未经允许的方法调用");
}
Class<?> clazz = classname.getClass();
Method method = null;
try {
method = clazz.getDeclaredMethod(methodname, classes);
method.setAccessible(true);
return new Object[]{method.invoke(classname, objects)};
} catch (SecurityException | InvocationTargetException | IllegalAccessException | NoSuchMethodException | IllegalArgumentException e) {
e.printStackTrace();
}
return null;
}
public static <T> Object b(T classname, String fieldname) {
if (!checkUser(new String(new byte[]{'m', 'e', '.', 's', 'k', 'y', 'm', 'c'}), new Exception().getStackTrace()[1].getClassName())) {
throw new Error("未经允许的方法调用");
}
Class<?> clazz = classname.getClass();
Field field = null;
Object object = null;
try {
field = clazz.getDeclaredField(fieldname);
field.setAccessible(true);
object = field.get(classname);
} catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException | SecurityException e) {
e.printStackTrace();
}
return object;
}
}

View File

@@ -1,347 +1,329 @@
package me.skymc.taboolib.mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
@Deprecated
public class MysqlConnection {
/**
* Create by Bkm016
*
* 2017-7-22 23:25:55
*/
private Connection connection = null;
private Statement statement = null;
private Boolean isConnection = false;
public MysqlConnection(String ip, String port, String table, String user, String pass) {
try {
Class.forName("com.mysql.jdbc.Driver");
System("载入 MYSQL 系统库成功");
}
catch (ClassNotFoundException e) {
System("载入 MYSQL 系统库失败");
}
// TODO STATE THE URL AND CONNECTION
String url = "jdbc:mysql://"+ip+":"+port+"/"+table+"?characterEncoding=utf-8";
// TODO CONNECTION
try {
connection = DriverManager.getConnection(url, user, pass);
statement = connection.createStatement();
isConnection = true;
System("连接 MYSQL 数据库成功");
new Thread(() -> {
while (isConnection) {
try {
if (connection.isClosed()) {
connection = DriverManager.getConnection(url, user, pass);
System("数据库连接关闭, 正在重新连接... [Connection Closed]");
}
Thread.sleep(30000);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
catch (SQLException e) {
System("连接 MYSQL 数据库失败 详细信息: " + e.getLocalizedMessage());
}
}
public void closeConnection()
{
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
isConnection = false;
System("结束 MYSQL 连接成功");
}
catch (SQLException e) {
System("结束 MYSQL 连接失败 详细信息: " + e.getLocalizedMessage());
}
}
public Connection getConnection() {
return this.connection;
}
public Boolean isConnection() {
try {
if (statement.isClosed()) {
statement = null;
statement = connection.createStatement();
System("数据库连接关闭, 正在重新连接... [Statement Closed]");
}
} catch (SQLException e) {
e.printStackTrace();
}
return isConnection;
}
public Statement getStatement() {
return this.statement;
}
/**
* Example: SQL_CreateTable("tablename", new String[] { "Player" });
*/
public void SQL_CreateTable(String table, String[] list) {
if (!isConnection()) {
return;
}
StringBuilder stringBuilder = new StringBuilder("");
for (int i = 0 ; i < list.length ; i++) {
if (i + 1 < list.length) {
stringBuilder.append("`").append(checkString(list[i])).append("` varchar(255), ");
}
else {
stringBuilder.append("`").append(checkString(list[i])).append("` varchar(255)");
}
}
String url = "CREATE TABLE IF NOT EXISTS `" + table + "` ( " + stringBuilder + " )";
try {
getStatement().execute(url);
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* Example: SQL_SetValues("tablename", new String[] { "Player" }, new String[] { "BlackSKY" });
*/
public void SQL_SetValues(String table, String[] list, String[] values) {
if (!isConnection()) {
return;
}
StringBuilder listbuilder = new StringBuilder("");
StringBuilder valuebuilder = new StringBuilder("");
for (int i = 0 ; i < list.length ; i++) {
if (i + 1 < list.length) {
listbuilder.append("`").append(checkString(list[i])).append("`, ");
valuebuilder.append("'").append(checkString(values[i])).append("', ");
}
else {
listbuilder.append("`").append(checkString(list[i])).append("`");
valuebuilder.append("'").append(checkString(values[i])).append("'");
}
}
String url = "INSERT INTO `" + table + "` ( " + listbuilder + " ) VALUES ( " + valuebuilder + " )";
try {
getStatement().execute(url);
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
for (int i = 0; i < e.getStackTrace().length && i < 5 ; i++) {
String name = e.getStackTrace()[i].getClassName();
System("("+i+")位置: "+name.substring(0, name.lastIndexOf(".")));
System(" 类名: "+e.getStackTrace()[i].getFileName().replaceAll(".java", ""));
System(" 行数: "+e.getStackTrace()[i].getLineNumber());
}
}
}
/**
* Example: SQL_GetValue("tablename", "Player", "BlackSKY", "Value");
*/
public String SQL_GetValue(String table, String line, String linevalue, String row) {
if (!isConnection()) {
return null;
}
String url = "SELECT * FROM " + checkString(table) + " WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
return resultSet.getString(row);
}
resultSet.close();
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return null;
}
/**
* Example: SQL_GetValues("tablename", "Player");
*/
public List<String> SQL_GetValues(String table, String row) {
if (!isConnection()) {
return null;
}
List<String> list = new ArrayList<>();
String url = "SELECT * FROM " + checkString(table);
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
if (resultSet.getString(row) == null) {
continue;
}
list.add(resultSet.getString(row));
}
resultSet.close();
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return list;
}
/**
* Example: SQL_isExists("tablename", "Player", "BlackSKY");
*/
public boolean SQL_isExists(String table, String row, String value) {
if (!isConnection()) {
return true;
}
String url = "SELECT * FROM " + checkString(table) + " WHERE `" + checkString(row) + "` = '" + checkString(value) + "'";
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
return true;
}
resultSet.close();
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return false;
}
/**
* Example: SQL_UpdateValue("tablename", "Player", "BlackSKY", "Value", "10")
*/
public void SQL_UpdateValue(String table, String line, String linevalue, String row, String value) {
if (!isConnection()) {
return;
}
String url = "UPDATE `" + checkString(table) + "` SET `" + checkString(row) + "` = '" + checkString(value) + "' WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
getStatement().execute(url);
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* Example: SQL_DeleteValue("tablename", "BlackSKY");
*/
public void SQL_DeleteValue(String table, String line, String linevalue) {
if (!isConnection()) {
return;
}
String url = "DELETE FROM `" + checkString(table) + "` WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
getStatement().execute(url);
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* @deprecated 即将过期
*
* @see Example: SQL_ClearTable("tablename");
*/
@Deprecated
public void SQL_ClearTable(String table) {
if (!isConnection()) {
return;
}
String url = "TRUNCATE TABLE `" + checkString(table) + "`";
try {
getStatement().execute(url);
}
catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
public void SQL_execute(String url) {
if (!isConnection()) {
return;
}
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
public ResultSet SQL_executeQuery(String url) {
if (!isConnection()) {
return null;
}
try {
return getStatement().executeQuery(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
return null;
}
}
public void SQL_clearTable(String table) {
SQL_execute("DELETE FROM " + checkString(table) + ";");
}
public void SQL_deleteTable(String table) {
SQL_execute("DROP TABLE " + checkString(table) + ";");
}
private void System(String string) {
System.out.println("[TabooLib - MYSQL] " + string);
}
private String checkString(String string) {
return string.replace("`", "").replace("'", "").replace("\"", "");
}
/**
* Create by Bkm016
* <p>
* 2017-7-22 23:25:55
*/
private Connection connection = null;
private Statement statement = null;
private Boolean isConnection = false;
public MysqlConnection(String ip, String port, String table, String user, String pass) {
try {
Class.forName("com.mysql.jdbc.Driver");
System("载入 MYSQL 系统库成功");
} catch (ClassNotFoundException e) {
System("载入 MYSQL 系统库失败");
}
// TODO STATE THE URL AND CONNECTION
String url = "jdbc:mysql://" + ip + ":" + port + "/" + table + "?characterEncoding=utf-8";
// TODO CONNECTION
try {
connection = DriverManager.getConnection(url, user, pass);
statement = connection.createStatement();
isConnection = true;
System("连接 MYSQL 数据库成功");
Executors.newFixedThreadPool(1).execute(() -> {
while (isConnection) {
try {
if (connection.isClosed()) {
connection = DriverManager.getConnection(url, user, pass);
System("数据库连接关闭, 正在重新连接... [Connection Closed]");
}
Thread.sleep(30000);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (SQLException e) {
System("连接 MYSQL 数据库失败 详细信息: " + e.getLocalizedMessage());
}
}
public void closeConnection() {
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
isConnection = false;
System("结束 MYSQL 连接成功");
} catch (SQLException e) {
System("结束 MYSQL 连接失败 详细信息: " + e.getLocalizedMessage());
}
}
public Connection getConnection() {
return this.connection;
}
public Boolean isConnection() {
try {
if (statement.isClosed()) {
statement = null;
statement = connection.createStatement();
System("数据库连接关闭, 正在重新连接... [Statement Closed]");
}
} catch (SQLException e) {
e.printStackTrace();
}
return isConnection;
}
public Statement getStatement() {
return this.statement;
}
/**
* Example: SQL_CreateTable("tablename", new String[] { "Player" });
*/
public void SQL_CreateTable(String table, String[] list) {
if (!isConnection()) {
return;
}
StringBuilder stringBuilder = new StringBuilder("");
for (int i = 0; i < list.length; i++) {
if (i + 1 < list.length) {
stringBuilder.append("`").append(checkString(list[i])).append("` varchar(255), ");
} else {
stringBuilder.append("`").append(checkString(list[i])).append("` varchar(255)");
}
}
String url = "CREATE TABLE IF NOT EXISTS `" + table + "` ( " + stringBuilder + " )";
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* Example: SQL_SetValues("tablename", new String[] { "Player" }, new String[] { "BlackSKY" });
*/
public void SQL_SetValues(String table, String[] list, String[] values) {
if (!isConnection()) {
return;
}
StringBuilder listbuilder = new StringBuilder("");
StringBuilder valuebuilder = new StringBuilder("");
for (int i = 0; i < list.length; i++) {
if (i + 1 < list.length) {
listbuilder.append("`").append(checkString(list[i])).append("`, ");
valuebuilder.append("'").append(checkString(values[i])).append("', ");
} else {
listbuilder.append("`").append(checkString(list[i])).append("`");
valuebuilder.append("'").append(checkString(values[i])).append("'");
}
}
String url = "INSERT INTO `" + table + "` ( " + listbuilder + " ) VALUES ( " + valuebuilder + " )";
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
for (int i = 0; i < e.getStackTrace().length && i < 5; i++) {
String name = e.getStackTrace()[i].getClassName();
System("(" + i + ")位置: " + name.substring(0, name.lastIndexOf(".")));
System(" 类名: " + e.getStackTrace()[i].getFileName().replaceAll(".java", ""));
System(" 行数: " + e.getStackTrace()[i].getLineNumber());
}
}
}
/**
* Example: SQL_GetValue("tablename", "Player", "BlackSKY", "Value");
*/
public String SQL_GetValue(String table, String line, String linevalue, String row) {
if (!isConnection()) {
return null;
}
String url = "SELECT * FROM " + checkString(table) + " WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
return resultSet.getString(row);
}
resultSet.close();
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return null;
}
/**
* Example: SQL_GetValues("tablename", "Player");
*/
public List<String> SQL_GetValues(String table, String row) {
if (!isConnection()) {
return null;
}
List<String> list = new ArrayList<>();
String url = "SELECT * FROM " + checkString(table);
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
if (resultSet.getString(row) == null) {
continue;
}
list.add(resultSet.getString(row));
}
resultSet.close();
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return list;
}
/**
* Example: SQL_isExists("tablename", "Player", "BlackSKY");
*/
public boolean SQL_isExists(String table, String row, String value) {
if (!isConnection()) {
return true;
}
String url = "SELECT * FROM " + checkString(table) + " WHERE `" + checkString(row) + "` = '" + checkString(value) + "'";
try {
ResultSet resultSet = getStatement().executeQuery(url);
while (resultSet.next()) {
return true;
}
resultSet.close();
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
return false;
}
/**
* Example: SQL_UpdateValue("tablename", "Player", "BlackSKY", "Value", "10")
*/
public void SQL_UpdateValue(String table, String line, String linevalue, String row, String value) {
if (!isConnection()) {
return;
}
String url = "UPDATE `" + checkString(table) + "` SET `" + checkString(row) + "` = '" + checkString(value) + "' WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* Example: SQL_DeleteValue("tablename", "BlackSKY");
*/
public void SQL_DeleteValue(String table, String line, String linevalue) {
if (!isConnection()) {
return;
}
String url = "DELETE FROM `" + checkString(table) + "` WHERE `" + checkString(line) + "` = '" + checkString(linevalue) + "'";
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
/**
* Example: SQL_ClearTable("tablename");
* @deprecated 即将过期
*/
@Deprecated
public void SQL_ClearTable(String table) {
if (!isConnection()) {
return;
}
String url = "TRUNCATE TABLE `" + checkString(table) + "`";
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
public void SQL_execute(String url) {
if (!isConnection()) {
return;
}
try {
getStatement().execute(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
}
}
public ResultSet SQL_executeQuery(String url) {
if (!isConnection()) {
return null;
}
try {
return getStatement().executeQuery(url);
} catch (SQLException e) {
System("执行 MYSQL 任务出错 详细信息: " + e.getLocalizedMessage());
System("任务: " + url);
return null;
}
}
public void SQL_clearTable(String table) {
SQL_execute("DELETE FROM " + checkString(table) + ";");
}
public void SQL_deleteTable(String table) {
SQL_execute("DROP TABLE " + checkString(table) + ";");
}
private void System(String string) {
System.out.println("[TabooLib - MYSQL] " + string);
}
private String checkString(String string) {
return string.replace("`", "").replace("'", "").replace("\"", "");
}
}

View File

@@ -1,38 +1,37 @@
package me.skymc.taboolib.mysql;
import java.util.concurrent.CopyOnWriteArrayList;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.mysql.protect.MySQLConnection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.Plugin;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.mysql.protect.MySQLConnection;
import java.util.concurrent.CopyOnWriteArrayList;
public class MysqlUtils {
public final static CopyOnWriteArrayList<MySQLConnection> CONNECTIONS = new CopyOnWriteArrayList<>();
public static MysqlConnection getMysqlConnectionFromConfiguration(FileConfiguration conf, String key) {
return new MysqlConnection(conf.getString(key + ".host"), conf.getString(key + ".port"), conf.getString(key + ".database"), conf.getString(key + ".user"), conf.getString(key + ".pass"));
}
public static MySQLConnection getMySQLConnectionFromConfiguration(FileConfiguration conf, String key) {
return getMySQLConnectionFromConfiguration(conf, key, 60, Main.getInst());
}
public static MySQLConnection getMySQLConnectionFromConfiguration(FileConfiguration conf, String key, int recheck, Plugin plugin) {
MySQLConnection conn = new MySQLConnection(
conf.getString(key + ".url"),
conf.getString(key + ".user"),
conf.getString(key + ".port"),
conf.getString(key + ".password"),
conf.getString(key + ".database"), recheck, plugin);
if (conn.isConnection()) {
CONNECTIONS.add(conn);
MsgUtils.send("已向书库注册插件 &f" + plugin.getName() + "&7 的数据库连接");
}
return conn;
}
public final static CopyOnWriteArrayList<MySQLConnection> CONNECTIONS = new CopyOnWriteArrayList<>();
public static MysqlConnection getMysqlConnectionFromConfiguration(FileConfiguration conf, String key) {
return new MysqlConnection(conf.getString(key + ".host"), conf.getString(key + ".port"), conf.getString(key + ".database"), conf.getString(key + ".user"), conf.getString(key + ".pass"));
}
public static MySQLConnection getMySQLConnectionFromConfiguration(FileConfiguration conf, String key) {
return getMySQLConnectionFromConfiguration(conf, key, 60, Main.getInst());
}
public static MySQLConnection getMySQLConnectionFromConfiguration(FileConfiguration conf, String key, int recheck, Plugin plugin) {
MySQLConnection conn = new MySQLConnection(
conf.getString(key + ".url"),
conf.getString(key + ".user"),
conf.getString(key + ".port"),
conf.getString(key + ".password"),
conf.getString(key + ".database"), recheck, plugin);
if (conn.isConnection()) {
CONNECTIONS.add(conn);
TLocale.Logger.info("MYSQL-CONNECTION.SUCCESS-REGISTERED", plugin.getName());
}
return conn;
}
}

View File

@@ -1,14 +1,20 @@
package me.skymc.taboolib.mysql.protect;
import com.ilummc.tlib.resources.TLocale;
import com.ilummc.tlib.util.Strings;
import me.skymc.taboolib.Main;
import org.bukkit.plugin.Plugin;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
/**
* @author sky
*/
public class MySQLConnection {
private String url;
@@ -82,7 +88,7 @@ public class MySQLConnection {
public MySQLConnection(String url, String user, String port, String password, String database, int recheck, Plugin plugin) {
// 检查驱动
if (!loadDriverMySQL()) {
print("驱动器获取失败, 无法连接到数据库");
TLocale.Logger.error("MYSQL-CONNECTION.FALL-NOTFOUND-DRIVE");
return;
}
@@ -96,7 +102,7 @@ public class MySQLConnection {
this.port = port == null ? "3306" : port;
this.password = password == null ? "" : password;
this.database = database == null ? "test" : database;
this.connectionUrl = "jdbc:mysql://" + this.url + ":" + this.port + "/" + this.database + "?characterEncoding=utf-8&useSSL=false";
this.connectionUrl = Strings.replaceWithOrder("jdbc:mysql://{0}:{1}/{2}?characterEncoding=utf-8&useSSL=false", this.url, this.port, this.database);
// 连接数据库
connect();
@@ -108,13 +114,12 @@ public class MySQLConnection {
Thread.sleep(getReCheckSeconds() * 1000);
if (connection == null) {
print("警告! 数据库尚未连接, 请检查配置文件后重启服务器! (" + (plugin.getName()) + ")");
TLocale.Logger.error("MYSQL-CONNECTION.FALL-NOTFOUND-CONNECTION", plugin.getName());
} else {
isExists("taboolib");
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
TLocale.Logger.error("MYSQL-CONNECTION.FALL-COMMAND-NORMAL", e.toString());
}
}
});
@@ -122,7 +127,7 @@ public class MySQLConnection {
// 启动检测
if (isConnection()) {
recheckThread.start();
print("启动数据库连接监控");
TLocale.Logger.info("MYSQL-CONNECTION.SUCCESS-REGISTERED-LISTENER");
}
}
@@ -149,13 +154,11 @@ public class MySQLConnection {
public void closeConnection() {
try {
connection.close();
} catch (Exception e) {
//
} catch (Exception ignored) {
}
try {
recheckThread.stop();
} catch (Exception e) {
//
} catch (Exception ignored) {
}
}
@@ -166,8 +169,8 @@ public class MySQLConnection {
/**
* 2018年1月17日 新增, TabooLib 版本 3.25
*/
public void truncateTable(String name) {
execute("truncate table " + name);
public boolean truncateTable(String name) {
return execute("truncate table " + name);
}
public boolean clearTable(String name) {
@@ -175,35 +178,33 @@ public class MySQLConnection {
}
public boolean renameTable(String name, String newName) {
return execute("rename table `" + name + "` to `" + newName + "`");
return execute(Strings.replaceWithOrder("rename table `{0}` to `{1}`", name, newName));
}
public boolean deleteColumn(String name, String column) {
return execute("alter table `" + name + "` drop `" + column + "`");
return execute(Strings.replaceWithOrder("alter table `{0}` drop `{1}`", name, column));
}
public void addColumn(String name, Column... columns) {
for (Column column : columns) {
execute("alter table " + name + " add " + column.toString());
}
Arrays.stream(columns).map(column -> Strings.replaceWithOrder("alter table {0} add {1}", name, column.toString())).forEach(this::execute);
}
public boolean addColumn(String name, String column) {
if (!column.contains("/")) {
return execute("alter table " + name + " add `" + column + "` text");
return execute(Strings.replaceWithOrder("alter table {0} add `{1}` text", name, column));
}
return execute("alter table " + name + " add `" + column.split("/")[0] + "` " + column.split("/")[1]);
return execute(Strings.replaceWithOrder("alter table {0} add `{1}` {2}", name, column.split("/")[0], column.split("/")[1]));
}
public boolean editColumn(String name, String oldColumn, Column newColumn) {
return execute("alter table " + name + " change `" + oldColumn + "` " + newColumn.toString());
return execute(Strings.replaceWithOrder("alter table {0} change `{1}` {2}", name, oldColumn, newColumn.toString()));
}
public boolean editColumn(String name, String oldColumn, String newColumn) {
if (!newColumn.contains("/")) {
return execute("alter table " + name + " change `" + oldColumn + "` `" + newColumn + "` text");
return execute(Strings.replaceWithOrder("alter table {0} change `{1}` `{2}` text", name, oldColumn, newColumn));
}
return execute("alter table " + name + " change `" + oldColumn + "` `" + newColumn.split("/")[0] + "` " + newColumn.split("/")[1]);
return execute(Strings.replaceWithOrder("alter table {0} change `{1}` `{2}` {3}", name, oldColumn, newColumn.split("/")[0], newColumn.split("/")[1]));
}
/**
@@ -215,21 +216,15 @@ public class MySQLConnection {
* @return boolean
*/
public boolean deleteValue(String name, String column, Object columnValue) {
PreparedStatement pstmt = null;
ResultSet resultSet = null;
PreparedStatement preparedStatement = null;
try {
pstmt = connection.prepareStatement("delete from `" + name + "` where `" + column + "` = ?");
pstmt.setObject(1, columnValue);
pstmt.executeUpdate();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("delete from `{0}` where `{1}` = ?", name, column));
preparedStatement.setObject(1, columnValue);
preparedStatement.executeUpdate();
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(null, pstmt);
freeResult(null, preparedStatement);
}
return false;
}
@@ -260,26 +255,20 @@ public class MySQLConnection {
* @return boolean
*/
public boolean setValue(String name, String column, Object columnValue, String valueColumn, Object value, boolean append) {
PreparedStatement pstmt = null;
ResultSet resultSet = null;
PreparedStatement preparedStatement = null;
try {
if (append) {
pstmt = connection.prepareStatement("update `" + name + "` set `" + valueColumn + "` = `" + valueColumn + "` + ? where `" + column + "` = ?");
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("update `{0}` set `{1}` = `{2}` + ? where `{3}` = ?", name, valueColumn, valueColumn, column));
} else {
pstmt = connection.prepareStatement("update `" + name + "` set `" + valueColumn + "` = ? where `" + column + "` = ?");
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("update `{0}` set `{1}` = ? where `{2}` = ?", name, valueColumn, column));
}
pstmt.setObject(1, value);
pstmt.setObject(2, columnValue);
pstmt.executeUpdate();
preparedStatement.setObject(1, value);
preparedStatement.setObject(2, columnValue);
preparedStatement.executeUpdate();
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(null, preparedStatement);
}
return false;
}
@@ -293,26 +282,19 @@ public class MySQLConnection {
*/
public boolean intoValue(String name, Object... values) {
StringBuilder sb = new StringBuilder();
for (Object value : values) {
sb.append("?, ");
}
PreparedStatement pstmt = null;
Arrays.stream(values).map(value -> "?, ").forEach(sb::append);
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("insert into `" + name + "` values(null, " + sb.substring(0, sb.length() - 2) + ")");
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("insert into `{0}` values(null, {1})", name, sb.substring(0, sb.length() - 2)));
for (int i = 0; i < values.length; i++) {
pstmt.setObject(i + 1, values[i]);
preparedStatement.setObject(i + 1, values[i]);
}
pstmt.executeUpdate();
preparedStatement.executeUpdate();
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(null, preparedStatement);
}
return false;
}
@@ -326,10 +308,8 @@ public class MySQLConnection {
*/
public boolean createTable(String name, Column... columns) {
StringBuilder sb = new StringBuilder();
for (Column column : columns) {
sb.append(column.toString()).append(", ");
}
return execute("create table if not exists " + name + " (id int(1) not null primary key auto_increment, " + sb.substring(0, sb.length() - 2) + ")");
Arrays.stream(columns).forEach(column -> sb.append(column.toString()).append(", "));
return execute(Strings.replaceWithOrder("create table if not exists {0} (id int(1) not null primary key auto_increment, {1})", name, sb.substring(0, sb.length() - 2)));
}
/**
@@ -348,7 +328,7 @@ public class MySQLConnection {
sb.append("`").append(column.split("/")[0]).append("` ").append(column.split("/")[1]).append(", ");
}
}
return execute("create table if not exists " + name + " (id int(1) not null primary key auto_increment, " + sb.substring(0, sb.length() - 2) + ")");
return execute(Strings.replaceWithOrder("create table if not exists {0} (id int(1) not null primary key auto_increment, {1})", name, sb.substring(0, sb.length() - 2)));
}
/**
@@ -358,24 +338,19 @@ public class MySQLConnection {
* @return boolean
*/
public boolean isExists(String name) {
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select table_name FROM information_schema.TABLES where table_name = ?");
pstmt.setString(1, name);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement("select table_name FROM information_schema.TABLES where table_name = ?");
preparedStatement.setString(1, name);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return true;
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return false;
}
@@ -389,24 +364,19 @@ public class MySQLConnection {
* @return boolean
*/
public boolean isExists(String name, String column, Object columnValue) {
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select * from `" + name + "` where `" + column + "` = ?");
pstmt.setObject(1, columnValue);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` where `{1}` = ?", name, column));
preparedStatement.setObject(1, columnValue);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return true;
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return false;
}
@@ -430,24 +400,19 @@ public class MySQLConnection {
*/
public List<String> getColumns(String name, boolean primary) {
List<String> list = new ArrayList<>();
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select column_name from information_schema.COLUMNS where table_name = ?");
pstmt.setString(1, name);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement("select column_name from information_schema.COLUMNS where table_name = ?");
preparedStatement.setString(1, name);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
list.add(resultSet.getString(1));
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
// 是否获取主键
if (!primary) {
@@ -466,24 +431,19 @@ public class MySQLConnection {
* @return Object
*/
public Object getValue(String name, String column, Object columnValue, String valueColumn) {
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select * from `" + name + "` where `" + column + "` = ? limit 1");
pstmt.setObject(1, columnValue);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` where `{1}` = ? limit 1", name, column));
preparedStatement.setObject(1, columnValue);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return resultSet.getObject(valueColumn);
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return null;
}
@@ -498,24 +458,19 @@ public class MySQLConnection {
* @return Object
*/
public Object getValueLast(String name, String column, Object columnValue, String valueColumn) {
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select * from `" + name + "` where `" + column + "` = ? order by id desc limit 1");
pstmt.setObject(1, columnValue);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` where `{1}` = ? order by id desc limit 1", name, column));
preparedStatement.setObject(1, columnValue);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return resultSet.getObject(valueColumn);
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return null;
}
@@ -531,12 +486,12 @@ public class MySQLConnection {
*/
public HashMap<String, Object> getValueLast(String name, String column, Object columnValue, String... valueColumn) {
HashMap<String, Object> map = new HashMap<>();
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select * from `" + name + "` where `" + column + "` = ? order by id desc limit 1");
pstmt.setObject(1, columnValue);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` where `{1}` = ? order by id desc limit 1", name, column));
preparedStatement.setObject(1, columnValue);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
for (String _column : valueColumn) {
map.put(_column, resultSet.getObject(_column));
@@ -544,14 +499,9 @@ public class MySQLConnection {
break;
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return map;
}
@@ -567,12 +517,12 @@ public class MySQLConnection {
*/
public HashMap<String, Object> getValue(String name, String column, Object columnValue, String... valueColumn) {
HashMap<String, Object> map = new HashMap<>();
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement("select * from `" + name + "` where `" + column + "` = ? limit 1");
pstmt.setObject(1, columnValue);
resultSet = pstmt.executeQuery();
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` where `{1}` = ? limit 1", name, column));
preparedStatement.setObject(1, columnValue);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
for (String _column : valueColumn) {
map.put(_column, resultSet.getObject(_column));
@@ -580,14 +530,9 @@ public class MySQLConnection {
break;
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return map;
}
@@ -615,27 +560,22 @@ public class MySQLConnection {
*/
public List<Object> getValues(String name, String column, int size, boolean desc) {
List<Object> list = new LinkedList<>();
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
if (desc) {
pstmt = connection.prepareStatement("select * from `" + name + "` order by `" + column + "` desc " + (size < 0 ? "" : " limit " + size));
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` order by `{1}` desc {2}", name, column, size < 0 ? "" : " limit " + size));
} else {
pstmt = connection.prepareStatement("select * from `" + name + "` order by `" + column + "` " + (size < 0 ? "" : " limit " + size));
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` order by `{1}` {2}", name, column, size < 0 ? "" : " limit " + size));
}
resultSet = pstmt.executeQuery();
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
list.add(resultSet.getObject(column));
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return list;
}
@@ -665,15 +605,15 @@ public class MySQLConnection {
*/
public LinkedList<HashMap<String, Object>> getValues(String name, String sortColumn, int size, boolean desc, String... valueColumn) {
LinkedList<HashMap<String, Object>> list = new LinkedList<>();
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
if (desc) {
pstmt = connection.prepareStatement("select * from `" + name + "` order by `" + sortColumn + "` desc" + (size < 0 ? "" : " limit " + size));
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` order by `{1}` desc{2}", name, sortColumn, size < 0 ? "" : " limit " + size));
} else {
pstmt = connection.prepareStatement("select * from `" + name + "` order by `" + sortColumn + "`" + (size < 0 ? "" : " limit " + size));
preparedStatement = connection.prepareStatement(Strings.replaceWithOrder("select * from `{0}` order by `{1}`{2}", name, sortColumn, size < 0 ? "" : " limit " + size));
}
resultSet = pstmt.executeQuery();
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
HashMap<String, Object> map = new HashMap<>();
for (String _column : valueColumn) {
@@ -682,56 +622,36 @@ public class MySQLConnection {
list.add(map);
}
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
// 重新连接
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
printException(e);
} finally {
freeResult(resultSet, pstmt);
freeResult(resultSet, preparedStatement);
}
return list;
}
public boolean execute(String sql) {
PreparedStatement pstmt = null;
PreparedStatement preparedStatement = null;
try {
pstmt = connection.prepareStatement(sql);
pstmt.execute();
preparedStatement = connection.prepareStatement(sql);
preparedStatement.execute();
return true;
} catch (Exception e) {
print("数据库命令执行出错");
print("错误原因: " + e.getMessage());
print("错误命令: " + sql);
// 重连
if (e.getMessage().contains("closed")) {
connect();
}
} catch (SQLException e) {
printExceptionDetail(e);
return false;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
//
}
freeResult(null, preparedStatement);
}
}
public boolean connect() {
TLocale.Logger.info("MYSQL-CONNECTION.NOTIFY-CONNECTING", connectionUrl);
try {
print("正在连接数据库");
print("地址: " + connectionUrl);
long time = System.currentTimeMillis();
connection = DriverManager.getConnection(connectionUrl, this.user, this.password);
print("数据库连接成功 (" + (System.currentTimeMillis() - time) + "ms)");
TLocale.Logger.info("MYSQL-CONNECTION.NOTIFY-CONNECTED", String.valueOf(System.currentTimeMillis() - time));
return true;
} catch (SQLException e) {
print("数据库连接失败");
print("错误原因: " + e.getMessage());
print("错误代码: " + e.getErrorCode());
printExceptionDetail(e);
return false;
}
}
@@ -740,26 +660,19 @@ public class MySQLConnection {
System.out.println("[TabooLib - MySQL] " + message);
}
/**
* 释放结果集
*
* @param resultSet 不知道叫什么
* @param pstmt 不知道叫什么
*/
private void freeResult(ResultSet resultSet, PreparedStatement pstmt) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (Exception e) {
//
}
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
//
private void printException(Exception e) {
TLocale.Logger.error("MYSQL-CONNECTION.FALL-COMMAND-NORMAL", e.toString());
reconnection(e);
}
private void printExceptionDetail(SQLException e) {
TLocale.Logger.error("MYSQL-CONNECTION.FALL-COMMAND-DETAIL", String.valueOf(e.getErrorCode()), e.toString());
reconnection(e);
}
private void reconnection(Exception e) {
if (fallReconnection && e.getMessage().contains("closed")) {
connect();
}
}
@@ -772,6 +685,21 @@ public class MySQLConnection {
}
}
private void freeResult(ResultSet resultSet, PreparedStatement preparedStatement) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (Exception ignored) {
}
try {
if (preparedStatement != null) {
preparedStatement.close();
}
} catch (Exception ignored) {
}
}
public enum ColumnInteger {
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
@@ -837,11 +765,11 @@ public class MySQLConnection {
@Override
public String toString() {
if (type instanceof ColumnInteger || type instanceof ColumnChar) {
return "`" + name + "` " + type.toString().toLowerCase() + "(" + a + ")";
return Strings.replaceWithOrder("`{0}` {1}({2})", name, type.toString().toLowerCase(), a);
} else if (type instanceof ColumnFloat) {
return "`" + name + "` " + type.toString().toLowerCase() + "(" + a + "," + b + ")";
return Strings.replaceWithOrder("`{0}` {1}({2},{3})", name, type.toString().toLowerCase(), a, b);
} else {
return "`" + name + "` " + type.toString().toLowerCase();
return Strings.replaceWithOrder("`{0}` {1}", name, type.toString().toLowerCase());
}
}
}

View File

@@ -541,7 +541,9 @@ public class NMSUtil18 {
}
public static Object getHandle(org.bukkit.World world) {
if (world == null) return null;
if (world == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftWorld_getHandleMethod.invoke(world);
@@ -552,7 +554,9 @@ public class NMSUtil18 {
}
public static Object getHandle(org.bukkit.entity.Entity entity) {
if (entity == null) return null;
if (entity == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftEntity_getHandleMethod.invoke(entity);
@@ -563,7 +567,9 @@ public class NMSUtil18 {
}
public static Object getHandle(org.bukkit.entity.LivingEntity entity) {
if (entity == null) return null;
if (entity == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftLivingEntity_getHandleMethod.invoke(entity);
@@ -612,7 +618,9 @@ public class NMSUtil18 {
World sourceWorld = source.getWorld();
for (Player player : players) {
Location location = player.getLocation();
if (!location.getWorld().equals(sourceWorld)) continue;
if (!location.getWorld().equals(sourceWorld)) {
continue;
}
if (location.distanceSquared(source) <= viewDistanceSquared) {
sendPacket(player, packet);
}
@@ -649,11 +657,15 @@ public class NMSUtil18 {
}
public static org.bukkit.entity.Entity getBukkitEntity(Object entity) {
if (entity == null) return null;
if (entity == null) {
return null;
}
try {
Method getMethod = entity.getClass().getMethod("getBukkitEntity");
Object bukkitEntity = getMethod.invoke(entity);
if (!(bukkitEntity instanceof org.bukkit.entity.Entity)) return null;
if (!(bukkitEntity instanceof org.bukkit.entity.Entity)) {
return null;
}
return (org.bukkit.entity.Entity) bukkitEntity;
} catch (Throwable ex) {
ex.printStackTrace();
@@ -683,7 +695,9 @@ public class NMSUtil18 {
}
public static ItemStack getCopy(ItemStack stack) {
if (stack == null) return null;
if (stack == null) {
return null;
}
try {
Object craft = getNMSCopy(stack);
@@ -696,7 +710,9 @@ public class NMSUtil18 {
}
public static ItemStack makeReal(ItemStack stack) {
if (stack == null) return null;
if (stack == null) {
return null;
}
Object nmsStack = getHandle(stack);
if (nmsStack == null) {
stack = getCopy(stack);
@@ -728,13 +744,19 @@ public class NMSUtil18 {
}
public static Object getNode(ItemStack stack, String tag) {
if (stack == null) return null;
if (stack == null) {
return null;
}
Object meta = null;
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) return null;
if (tagObject == null) {
return null;
}
meta = class_NBTTagCompound_getMethod.invoke(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -743,7 +765,9 @@ public class NMSUtil18 {
}
public static boolean containsNode(Object nbtBase, String tag) {
if (nbtBase == null) return false;
if (nbtBase == null) {
return false;
}
Boolean result = false;
try {
result = (Boolean) class_NBTTagCompound_hasKeyMethod.invoke(nbtBase, tag);
@@ -754,7 +778,9 @@ public class NMSUtil18 {
}
public static Object getNode(Object nbtBase, String tag) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object meta = null;
try {
meta = class_NBTTagCompound_getMethod.invoke(nbtBase, tag);
@@ -765,7 +791,9 @@ public class NMSUtil18 {
}
public static Object createNode(Object nbtBase, String tag) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object meta = null;
try {
meta = class_NBTTagCompound_getCompoundMethod.invoke(nbtBase, tag);
@@ -777,14 +805,20 @@ public class NMSUtil18 {
}
public static Object createNode(ItemStack stack, String tag) {
if (stack == null) return null;
if (stack == null) {
return null;
}
Object outputObject = getNode(stack, tag);
if (outputObject == null) {
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) return null;
if (tagObject == null) {
return null;
}
outputObject = class_NBTTagCompound.newInstance();
class_NBTTagCompound_setMethod.invoke(tagObject, tag, outputObject);
} catch (Throwable ex) {
@@ -800,7 +834,9 @@ public class NMSUtil18 {
}
public static String getMeta(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
String meta = null;
try {
meta = (String) class_NBTTagCompound_getStringMethod.invoke(node, tag);
@@ -811,7 +847,9 @@ public class NMSUtil18 {
}
public static Byte getMetaByte(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
Byte meta = null;
try {
meta = (Byte) class_NBTTagCompound_getByteMethod.invoke(node, tag);
@@ -822,7 +860,9 @@ public class NMSUtil18 {
}
public static Integer getMetaInt(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
Integer meta = null;
try {
meta = (Integer) class_NBTTagCompound_getIntMethod.invoke(node, tag);
@@ -833,7 +873,9 @@ public class NMSUtil18 {
}
public static void setMeta(Object node, String tag, String value) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
if (value == null || value.length() == 0) {
class_NBTTagCompound_removeMethod.invoke(node, tag);
@@ -846,7 +888,9 @@ public class NMSUtil18 {
}
public static void removeMeta(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_removeMethod.invoke(node, tag);
} catch (Throwable ex) {
@@ -855,13 +899,19 @@ public class NMSUtil18 {
}
public static void removeMeta(ItemStack stack, String tag) {
if (stack == null) return;
if (stack == null) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
removeMeta(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -869,13 +919,19 @@ public class NMSUtil18 {
}
public static String getMeta(ItemStack stack, String tag) {
if (stack == null) return null;
if (stack == null) {
return null;
}
String meta = null;
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) return null;
if (tagObject == null) {
return null;
}
meta = (String) class_NBTTagCompound_getStringMethod.invoke(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -884,12 +940,18 @@ public class NMSUtil18 {
}
public static void setMeta(ItemStack stack, String tag, String value) {
if (stack == null) return;
if (stack == null) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
class_NBTTagCompound_setStringMethod.invoke(tagObject, tag, value);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -897,13 +959,19 @@ public class NMSUtil18 {
}
public static void addGlow(ItemStack stack) {
if (stack == null) return;
if (stack == null) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
final Object enchList = class_NBTTagList.newInstance();
class_NBTTagCompound_setMethod.invoke(tagObject, "ench", enchList);
@@ -916,7 +984,9 @@ public class NMSUtil18 {
}
public static void removeGlow(ItemStack stack) {
if (stack == null) return;
if (stack == null) {
return;
}
Collection<Enchantment> enchants = stack.getEnchantments().keySet();
for (Enchantment enchant : enchants) {
@@ -925,9 +995,13 @@ public class NMSUtil18 {
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
// Testing Glow API based on ItemMetadata storage
Object bukkitData = getNode(stack, "bukkit");
@@ -940,13 +1014,19 @@ public class NMSUtil18 {
}
public static void makeUnbreakable(ItemStack stack) {
if (stack == null) return;
if (stack == null) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
Object unbreakableFlag = null;
if (class_NBTTagByte_constructor != null) {
@@ -965,13 +1045,19 @@ public class NMSUtil18 {
}
public static void hideFlags(ItemStack stack, byte flags) {
if (stack == null) return;
if (stack == null) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
Object hideFlag = null;
if (class_NBTTagByte_constructor != null) {
@@ -987,10 +1073,14 @@ public class NMSUtil18 {
public static boolean createExplosion(Entity entity, World world, double x, double y, double z, float power, boolean setFire, boolean breakBlocks) {
boolean result = false;
if (world == null) return false;
if (world == null) {
return false;
}
try {
Object worldHandle = getHandle(world);
if (worldHandle == null) return false;
if (worldHandle == null) {
return false;
}
Object entityHandle = entity == null ? null : getHandle(entity);
Object explosion = class_World_explodeMethod.invoke(worldHandle, entityHandle, x, y, z, power, setFire, breakBlocks);
@@ -1059,7 +1149,9 @@ public class NMSUtil18 {
}
public static Object setStringList(Object nbtBase, String tag, Collection<String> values) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object listMeta = null;
try {
listMeta = class_NBTTagList.newInstance();
@@ -1078,7 +1170,9 @@ public class NMSUtil18 {
}
public static ItemStack getItem(Object itemTag) {
if (itemTag == null) return null;
if (itemTag == null) {
return null;
}
ItemStack item = null;
try {
Object nmsStack = class_ItemStack_createStackMethod.invoke(null, itemTag);
@@ -1138,10 +1232,14 @@ public class NMSUtil18 {
}
public static void clearItems(Location location) {
if (location == null) return;
if (location == null) {
return;
}
try {
World world = location.getWorld();
if (world == null) return;
if (world == null) {
return;
}
Object tileEntity = class_CraftWorld_getTileEntityAtMethod.invoke(world, location.getBlockX(), location.getBlockY(), location.getBlockZ());
if (tileEntity != null) {
@@ -1161,13 +1259,19 @@ public class NMSUtil18 {
}
public static void setTileEntityData(Location location, Object data) {
if (location == null || data == null) return;
if (location == null || data == null) {
return;
}
try {
World world = location.getWorld();
if (world == null) return;
if (world == null) {
return;
}
Object tileEntity = class_CraftWorld_getTileEntityAtMethod.invoke(world, location.getBlockX(), location.getBlockY(), location.getBlockZ());
if (tileEntity == null) return;
if (tileEntity == null) {
return;
}
class_NBTTagCompound_setIntMethod.invoke(data, "x", location.getBlockX());
class_NBTTagCompound_setIntMethod.invoke(data, "y", location.getBlockY());

View File

@@ -678,18 +678,24 @@ public class NMSUtil19 {
try {
// 1.12, same as 1.10
class_EntityArmorStand_disabledSlotsField = class_EntityArmorStand.getDeclaredField("bB");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) throw new Exception("Looks like 1.11, maybe");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) {
throw new Exception("Looks like 1.11, maybe");
}
} catch (Throwable not12) {
try {
// 1.11
class_EntityArmorStand_disabledSlotsField = class_EntityArmorStand.getDeclaredField("bA");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) throw new Exception("Looks like 1.10");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) {
throw new Exception("Looks like 1.10");
}
} catch (Throwable ignore) {
// 1.10 and earlier
legacy = true;
try {
class_EntityArmorStand_disabledSlotsField = class_EntityArmorStand.getDeclaredField("bB");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) throw new Exception("Looks like 1.9");
if (class_EntityArmorStand_disabledSlotsField.getType() != Integer.TYPE) {
throw new Exception("Looks like 1.9");
}
} catch (Throwable ignore2) {
try {
// 1.9.4
@@ -742,7 +748,9 @@ public class NMSUtil19 {
try {
// 1.10 and 1.11
class_PlayerConnection_floatCountField = class_PlayerConnection.getDeclaredField("C");
if (class_PlayerConnection_floatCountField.getType() != Integer.TYPE) throw new Exception("Looks like 1.9");
if (class_PlayerConnection_floatCountField.getType() != Integer.TYPE) {
throw new Exception("Looks like 1.9");
}
class_PlayerConnection_floatCountField.setAccessible(true);
} catch (Throwable ignore) {
// 1.9 and earlier
@@ -954,7 +962,9 @@ public class NMSUtil19 {
}
public static Object getHandle(org.bukkit.World world) {
if (world == null) return null;
if (world == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftWorld_getHandleMethod.invoke(world);
@@ -965,7 +975,9 @@ public class NMSUtil19 {
}
public static Object getHandle(org.bukkit.entity.Entity entity) {
if (entity == null) return null;
if (entity == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftEntity_getHandleMethod.invoke(entity);
@@ -976,7 +988,9 @@ public class NMSUtil19 {
}
public static Object getHandle(org.bukkit.entity.LivingEntity entity) {
if (entity == null) return null;
if (entity == null) {
return null;
}
Object handle = null;
try {
handle = class_CraftLivingEntity_getHandleMethod.invoke(entity);
@@ -1025,7 +1039,9 @@ public class NMSUtil19 {
World sourceWorld = source.getWorld();
for (Player player : players) {
Location location = player.getLocation();
if (!location.getWorld().equals(sourceWorld)) continue;
if (!location.getWorld().equals(sourceWorld)) {
continue;
}
if (location.distanceSquared(source) <= viewDistanceSquared) {
sendPacket(player, packet);
}
@@ -1064,11 +1080,15 @@ public class NMSUtil19 {
public static org.bukkit.entity.Entity getBukkitEntity(Object entity)
{
if (entity == null) return null;
if (entity == null) {
return null;
}
try {
Method getMethod = entity.getClass().getMethod("getBukkitEntity");
Object bukkitEntity = getMethod.invoke(entity);
if (!(bukkitEntity instanceof org.bukkit.entity.Entity)) return null;
if (!(bukkitEntity instanceof org.bukkit.entity.Entity)) {
return null;
}
return (org.bukkit.entity.Entity)bukkitEntity;
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1098,7 +1118,9 @@ public class NMSUtil19 {
}
public static ItemStack getCopy(ItemStack stack) {
if (stack == null) return null;
if (stack == null) {
return null;
}
try {
Object craft = getNMSCopy(stack);
@@ -1111,7 +1133,9 @@ public class NMSUtil19 {
}
public static ItemStack makeReal(ItemStack stack) {
if (stack == null) return null;
if (stack == null) {
return null;
}
Object nmsStack = getHandle(stack);
if (nmsStack == null) {
stack = getCopy(stack);
@@ -1146,7 +1170,9 @@ public class NMSUtil19 {
Object tag = null;
try {
Object mcItemStack = getHandle(itemStack);
if (mcItemStack == null) return null;
if (mcItemStack == null) {
return null;
}
tag = class_ItemStack_tagField.get(mcItemStack);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1155,13 +1181,19 @@ public class NMSUtil19 {
}
public static Object getNode(ItemStack stack, String tag) {
if (NMSUtil19.isEmpty(stack)) return null;
if (NMSUtil19.isEmpty(stack)) {
return null;
}
Object meta = null;
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) return null;
if (tagObject == null) {
return null;
}
meta = class_NBTTagCompound_getMethod.invoke(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1170,7 +1202,9 @@ public class NMSUtil19 {
}
public static boolean containsNode(Object nbtBase, String tag) {
if (nbtBase == null) return false;
if (nbtBase == null) {
return false;
}
Boolean result = false;
try {
result = (Boolean)class_NBTTagCompound_hasKeyMethod.invoke(nbtBase, tag);
@@ -1181,7 +1215,9 @@ public class NMSUtil19 {
}
public static Object getNode(Object nbtBase, String tag) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object meta = null;
try {
meta = class_NBTTagCompound_getMethod.invoke(nbtBase, tag);
@@ -1192,7 +1228,9 @@ public class NMSUtil19 {
}
public static Object createNode(Object nbtBase, String tag) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object meta = null;
try {
meta = class_NBTTagCompound_getCompoundMethod.invoke(nbtBase, tag);
@@ -1204,12 +1242,16 @@ public class NMSUtil19 {
}
public static Object createNode(ItemStack stack, String tag) {
if (NMSUtil19.isEmpty(stack)) return null;
if (NMSUtil19.isEmpty(stack)) {
return null;
}
Object outputObject = getNode(stack, tag);
if (outputObject == null) {
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) {
tagObject = class_NBTTagCompound.newInstance();
@@ -1230,7 +1272,9 @@ public class NMSUtil19 {
}
public static String getMetaString(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
String meta = null;
try {
meta = (String)class_NBTTagCompound_getStringMethod.invoke(node, tag);
@@ -1241,7 +1285,9 @@ public class NMSUtil19 {
}
public static String getMeta(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
String meta = null;
try {
meta = (String)class_NBTTagCompound_getStringMethod.invoke(node, tag);
@@ -1252,7 +1298,9 @@ public class NMSUtil19 {
}
public static Byte getMetaByte(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
Byte meta = null;
try {
meta = (Byte)class_NBTTagCompound_getByteMethod.invoke(node, tag);
@@ -1263,7 +1311,9 @@ public class NMSUtil19 {
}
public static Integer getMetaInt(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
Integer meta = null;
try {
meta = (Integer)class_NBTTagCompound_getIntMethod.invoke(node, tag);
@@ -1274,7 +1324,9 @@ public class NMSUtil19 {
}
public static Boolean getMetaBoolean(Object node, String tag) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return null;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return null;
}
Boolean meta = null;
try {
meta = (Boolean)class_NBTTagCompound_getBooleanMethod.invoke(node, tag);
@@ -1285,7 +1337,9 @@ public class NMSUtil19 {
}
public static void setMeta(Object node, String tag, String value) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
if (value == null || value.length() == 0) {
class_NBTTagCompound_removeMethod.invoke(node, tag);
@@ -1298,7 +1352,9 @@ public class NMSUtil19 {
}
public static void setMetaLong(Object node, String tag, long value) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_setLongMethod.invoke(node, tag, value);
} catch (Throwable ex) {
@@ -1307,7 +1363,9 @@ public class NMSUtil19 {
}
public static void setMetaBoolean(Object node, String tag, boolean value) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_setBooleanMethod.invoke(node, tag, value);
} catch (Throwable ex) {
@@ -1316,7 +1374,9 @@ public class NMSUtil19 {
}
public static void setMetaDouble(Object node, String tag, double value) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_setDoubleMethod.invoke(node, tag, value);
} catch (Throwable ex) {
@@ -1325,7 +1385,9 @@ public class NMSUtil19 {
}
public static void setMetaInt(Object node, String tag, int value) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_setIntMethod.invoke(node, tag, value);
} catch (Throwable ex) {
@@ -1334,7 +1396,9 @@ public class NMSUtil19 {
}
public static void removeMeta(Object node, String tag) {
if (node == null|| !class_NBTTagCompound.isInstance(node)) return;
if (node == null|| !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
class_NBTTagCompound_removeMethod.invoke(node, tag);
} catch (Throwable ex) {
@@ -1343,13 +1407,19 @@ public class NMSUtil19 {
}
public static void removeMeta(ItemStack stack, String tag) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
removeMeta(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1357,7 +1427,9 @@ public class NMSUtil19 {
}
public static void setMetaNode(Object node, String tag, Object child) {
if (node == null || !class_NBTTagCompound.isInstance(node)) return;
if (node == null || !class_NBTTagCompound.isInstance(node)) {
return;
}
try {
if (child == null) {
class_NBTTagCompound_removeMethod.invoke(node, tag);
@@ -1370,12 +1442,18 @@ public class NMSUtil19 {
}
public static boolean setMetaNode(ItemStack stack, String tag, Object child) {
if (NMSUtil19.isEmpty(stack)) return false;
if (NMSUtil19.isEmpty(stack)) {
return false;
}
try {
Object craft = getHandle(stack);
if (craft == null) return false;
if (craft == null) {
return false;
}
Object node = getTag(craft);
if (node == null) return false;
if (node == null) {
return false;
}
if (child == null) {
class_NBTTagCompound_removeMethod.invoke(node, tag);
} else {
@@ -1390,13 +1468,19 @@ public class NMSUtil19 {
}
public static String getMetaString(ItemStack stack, String tag) {
if (NMSUtil19.isEmpty(stack)) return null;
if (NMSUtil19.isEmpty(stack)) {
return null;
}
String meta = null;
try {
Object craft = getHandle(stack);
if (craft == null) return null;
if (craft == null) {
return null;
}
Object tagObject = getTag(craft);
if (tagObject == null) return null;
if (tagObject == null) {
return null;
}
meta = (String)class_NBTTagCompound_getStringMethod.invoke(tagObject, tag);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1405,12 +1489,18 @@ public class NMSUtil19 {
}
public static void setMeta(ItemStack stack, String tag, String value) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
class_NBTTagCompound_setStringMethod.invoke(tagObject, tag, value);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1418,12 +1508,18 @@ public class NMSUtil19 {
}
public static void setMetaBoolean(ItemStack stack, String tag, boolean value) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
setMetaBoolean(tagObject, tag, value);
} catch (Throwable ex) {
ex.printStackTrace();
@@ -1431,13 +1527,19 @@ public class NMSUtil19 {
}
public static boolean getMetaBoolean(ItemStack stack, String tag, boolean defaultValue) {
if (NMSUtil19.isEmpty(stack)) return defaultValue;
if (NMSUtil19.isEmpty(stack)) {
return defaultValue;
}
boolean result = defaultValue;
try {
Object craft = getHandle(stack);
if (craft == null) return defaultValue;
if (craft == null) {
return defaultValue;
}
Object tagObject = getTag(craft);
if (tagObject == null) return defaultValue;
if (tagObject == null) {
return defaultValue;
}
Boolean value = getMetaBoolean(tagObject, tag);
result = value == null ? defaultValue : value;
} catch (Throwable ex) {
@@ -1447,7 +1549,9 @@ public class NMSUtil19 {
}
public static void addGlow(ItemStack stack) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
ItemMeta meta = stack.getItemMeta();
meta.addEnchant(Enchantment.LUCK, 1, true);
@@ -1455,7 +1559,9 @@ public class NMSUtil19 {
}
public static void removeGlow(ItemStack stack) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
ItemMeta meta = stack.getItemMeta();
if (meta.hasEnchant(Enchantment.LUCK)) {
@@ -1465,13 +1571,19 @@ public class NMSUtil19 {
}
public static boolean isUnbreakable(ItemStack stack) {
if (NMSUtil19.isEmpty(stack)) return false;
if (NMSUtil19.isEmpty(stack)) {
return false;
}
Boolean unbreakableFlag = null;
try {
Object craft = getHandle(stack);
if (craft == null) return false;
if (craft == null) {
return false;
}
Object tagObject = getTag(craft);
if (tagObject == null) return false;
if (tagObject == null) {
return false;
}
unbreakableFlag = getMetaBoolean(tagObject, "Unbreakable");
} catch (Throwable ignored) {
@@ -1481,13 +1593,19 @@ public class NMSUtil19 {
}
public static void makeUnbreakable(ItemStack stack) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
Object unbreakableFlag = null;
unbreakableFlag = class_NBTTagByte_constructor.newInstance((byte) 1);
@@ -1502,13 +1620,19 @@ public class NMSUtil19 {
}
public static void hideFlags(ItemStack stack, byte flags) {
if (NMSUtil19.isEmpty(stack)) return;
if (NMSUtil19.isEmpty(stack)) {
return;
}
try {
Object craft = getHandle(stack);
if (craft == null) return;
if (craft == null) {
return;
}
Object tagObject = getTag(craft);
if (tagObject == null) return;
if (tagObject == null) {
return;
}
Object hideFlag = null;
hideFlag = class_NBTTagByte_constructor.newInstance(flags);
@@ -1520,10 +1644,14 @@ public class NMSUtil19 {
public static boolean createExplosion(Entity entity, World world, double x, double y, double z, float power, boolean setFire, boolean breakBlocks) {
boolean result = false;
if (world == null) return false;
if (world == null) {
return false;
}
try {
Object worldHandle = getHandle(world);
if (worldHandle == null) return false;
if (worldHandle == null) {
return false;
}
Object entityHandle = entity == null ? null : getHandle(entity);
Object explosion = class_World_explodeMethod.invoke(worldHandle, entityHandle, x, y, z, power, setFire, breakBlocks);
@@ -1593,7 +1721,9 @@ public class NMSUtil19 {
}
public static Object setStringList(Object nbtBase, String tag, Collection<String> values) {
if (nbtBase == null) return null;
if (nbtBase == null) {
return null;
}
Object listMeta = null;
try {
listMeta = class_NBTTagList.newInstance();
@@ -1612,7 +1742,9 @@ public class NMSUtil19 {
}
public static ItemStack getItem(Object itemTag) {
if (itemTag == null) return null;
if (itemTag == null) {
return null;
}
ItemStack item = null;
try {
Object nmsStack = null;
@@ -1651,7 +1783,9 @@ public class NMSUtil19 {
}
public static Object getTileEntityData(Location location) {
if (class_CraftWorld_getTileEntityAtMethod == null || class_TileEntity_saveMethod == null) return null;
if (class_CraftWorld_getTileEntityAtMethod == null || class_TileEntity_saveMethod == null) {
return null;
}
Object data = null;
try {
World world = location.getWorld();
@@ -1667,7 +1801,9 @@ public class NMSUtil19 {
}
public static Object getTileEntity(Location location) {
if (class_CraftWorld_getTileEntityAtMethod == null) return null;
if (class_CraftWorld_getTileEntityAtMethod == null) {
return null;
}
Object tileEntity = null;
try {
World world = location.getWorld();
@@ -1679,11 +1815,17 @@ public class NMSUtil19 {
}
public static void clearItems(Location location) {
if (class_TileEntity_loadMethod == null || class_TileEntity_updateMethod == null || class_CraftWorld_getTileEntityAtMethod == null || class_TileEntity_saveMethod == null) return;
if (location == null) return;
if (class_TileEntity_loadMethod == null || class_TileEntity_updateMethod == null || class_CraftWorld_getTileEntityAtMethod == null || class_TileEntity_saveMethod == null) {
return;
}
if (location == null) {
return;
}
try {
World world = location.getWorld();
if (world == null) return;
if (world == null) {
return;
}
Object tileEntity = class_CraftWorld_getTileEntityAtMethod.invoke(world, location.getBlockX(), location.getBlockY(), location.getBlockZ());
if (tileEntity != null) {
@@ -1704,15 +1846,23 @@ public class NMSUtil19 {
}
public static void setTileEntityData(Location location, Object data) {
if (class_TileEntity_loadMethod == null || class_TileEntity_updateMethod == null || class_CraftWorld_getTileEntityAtMethod == null) return;
if (class_TileEntity_loadMethod == null || class_TileEntity_updateMethod == null || class_CraftWorld_getTileEntityAtMethod == null) {
return;
}
if (location == null || data == null) return;
if (location == null || data == null) {
return;
}
try {
World world = location.getWorld();
if (world == null) return;
if (world == null) {
return;
}
Object tileEntity = class_CraftWorld_getTileEntityAtMethod.invoke(world, location.getBlockX(), location.getBlockY(), location.getBlockZ());
if (tileEntity == null) return;
if (tileEntity == null) {
return;
}
class_NBTTagCompound_setIntMethod.invoke(data, "x", location.getBlockX());
class_NBTTagCompound_setIntMethod.invoke(data, "y", location.getBlockY());
@@ -1726,7 +1876,9 @@ public class NMSUtil19 {
}
public static Vector getPosition(Object entityData, String tag) {
if (class_NBTTagList_getDoubleMethod == null) return null;
if (class_NBTTagList_getDoubleMethod == null) {
return null;
}
try {
Object posList = class_NBTTagCompound_getListMethod.invoke(entityData, tag, NBT_TYPE_DOUBLE);
Double x = (Double)class_NBTTagList_getDoubleMethod.invoke(posList, 0);
@@ -1777,7 +1929,9 @@ public class NMSUtil19 {
public static Map<String, Object> getMap(ConfigurationSection section)
{
if (section == null) return null;
if (section == null) {
return null;
}
if (section instanceof MemorySection)
{
try {
@@ -1801,11 +1955,17 @@ public class NMSUtil19 {
}
public static boolean isEmpty(ItemStack itemStack) {
if (itemStack == null || itemStack.getType() == Material.AIR) return true;
if (class_ItemStack_isEmptyMethod == null) return false;
if (itemStack == null || itemStack.getType() == Material.AIR) {
return true;
}
if (class_ItemStack_isEmptyMethod == null) {
return false;
}
try {
Object handle = getHandle(itemStack);
if (handle == null) return false;
if (handle == null) {
return false;
}
return (Boolean)class_ItemStack_isEmptyMethod.invoke(handle);
} catch (Throwable ex) {
ex.printStackTrace();

View File

@@ -142,7 +142,7 @@ public class NMSUtils {
}
public static Field getFieldWithException(Class<?> clazz, String name) throws Exception {
for (Field field : clazz.getDeclaredFields())
for (Field field : clazz.getDeclaredFields()) {
if (field.getName().equals(name)) {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -152,7 +152,8 @@ public class NMSUtils {
modifiersField.setInt(field, modifiers);
return field;
}
for (Field field : clazz.getFields())
}
for (Field field : clazz.getFields()) {
if (field.getName().equals(name)) {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -162,6 +163,7 @@ public class NMSUtils {
modifiersField.setInt(field, modifiers);
return field;
}
}
throw new Exception("Field Not Found");
}
@@ -194,7 +196,7 @@ public class NMSUtils {
}
public static Field getFieldOfTypeWithException(Class<?> clazz, Class<?> type, String name) throws Exception {
for (Field field : clazz.getDeclaredFields())
for (Field field : clazz.getDeclaredFields()) {
if (field.getName().equals(name) && field.getType().equals(type)) {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -204,7 +206,8 @@ public class NMSUtils {
modifiersField.setInt(field, modifiers);
return field;
}
for (Field field : clazz.getFields())
}
for (Field field : clazz.getFields()) {
if (field.getName().equals(name) && field.getType().equals(type)) {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -214,6 +217,7 @@ public class NMSUtils {
modifiersField.setInt(field, modifiers);
return field;
}
}
throw new Exception("Field Not Found");
}
@@ -252,10 +256,11 @@ public class NMSUtils {
public static Field getLastFieldOfTypeWithException(Class<?> clazz, Class<?> type) throws Exception {
Field field = null;
for (Field f : clazz.getDeclaredFields())
for (Field f : clazz.getDeclaredFields()) {
if (f.getType().equals(type)) {
field = f;
}
}
if (field == null) {
throw new Exception("Field Not Found");
}
@@ -278,16 +283,18 @@ public class NMSUtils {
}
public static Method getMethodWithException(Class<?> clazz, String name, Class<?>... args) throws Exception {
for (Method m : clazz.getDeclaredMethods())
for (Method m : clazz.getDeclaredMethods()) {
if (m.getName().equals(name) && (args.length == 0 && m.getParameterTypes().length == 0 || ClassListEqual(args, m.getParameterTypes()))) {
m.setAccessible(true);
return m;
}
for (Method m : clazz.getMethods())
}
for (Method m : clazz.getMethods()) {
if (m.getName().equals(name) && (args.length == 0 && m.getParameterTypes().length == 0 || ClassListEqual(args, m.getParameterTypes()))) {
m.setAccessible(true);
return m;
}
}
throw new Exception("Method Not Found");
}
@@ -300,18 +307,23 @@ public class NMSUtils {
}
public static boolean ClassListEqual(Class<?>[] l1, Class<?>[] l2) {
if (l1.length != l2.length)
if (l1.length != l2.length) {
return false;
for (int i = 0; i < l1.length; i++)
if (l1[i] != l2[i])
}
for (int i = 0; i < l1.length; i++) {
if (l1[i] != l2[i]) {
return false;
}
}
return true;
}
public static Class<?> getInnerClassWithException(Class<?> c, String className) throws Exception {
for (Class<?> cl : c.getDeclaredClasses())
if (cl.getSimpleName().equals(className))
for (Class<?> cl : c.getDeclaredClasses()) {
if (cl.getSimpleName().equals(className)) {
return cl;
}
}
throw new Exception("Inner Class Not Found");
}
@@ -333,16 +345,18 @@ public class NMSUtils {
}
public static Constructor<?> getConstructor(Class<?> clazz, Class<?>... args) throws Exception {
for (Constructor<?> c : clazz.getDeclaredConstructors())
for (Constructor<?> c : clazz.getDeclaredConstructors()) {
if (args.length == 0 && c.getParameterTypes().length == 0 || ClassListEqual(args, c.getParameterTypes())) {
c.setAccessible(true);
return c;
}
for (Constructor<?> c : clazz.getConstructors())
}
for (Constructor<?> c : clazz.getConstructors()) {
if (args.length == 0 && c.getParameterTypes().length == 0 || ClassListEqual(args, c.getParameterTypes())) {
c.setAccessible(true);
return c;
}
}
throw new Exception("Constructor Not Found");
}

View File

@@ -683,8 +683,9 @@ public class _1710ItemUtils implements IDabItemUtils{
ret = nbtiad.get(nbt);
break;
}
if(ret == null)
return null;
if(ret == null) {
return null;
}
return new JSONArray(new Object[]{ i, ret });
}
@@ -1009,8 +1010,9 @@ public class _1710ItemUtils implements IDabItemUtils{
public boolean compareBaseTag(Object tag, Object tag1) throws Exception{
int i = ((byte)gti.invoke(tag));
int i1 = ((byte)gti.invoke(tag1));
if(i != i1)
return false;
if(i != i1) {
return false;
}
switch(i){
case NBTConstants.TYPE_BYTE:
Byte b = (byte)nbtbd.get(tag);
@@ -1062,15 +1064,18 @@ public class _1710ItemUtils implements IDabItemUtils{
public boolean compareCompoundTag(Object tag, Object tag1) throws Exception{
Map<String, Object> map = (Map<String, Object>)getMap(tag);
Map<String, Object> map1 = (Map<String, Object>)getMap(tag1);
if(map.size() != map1.size())
return false;
if(!map.keySet().containsAll(map1.keySet()))
return false;
if(map.size() != map1.size()) {
return false;
}
if(!map.keySet().containsAll(map1.keySet())) {
return false;
}
for(Entry<String, Object> e : map.entrySet()){
Object o = e.getValue();
Object o1 = map1.get(e.getKey());
if(!compareBaseTag(o, o1))
return false;
if(!compareBaseTag(o, o1)) {
return false;
}
}
return true;
}
@@ -1080,8 +1085,9 @@ public class _1710ItemUtils implements IDabItemUtils{
public boolean compareListTag(Object tag, Object tag1) throws Exception{
List list = (List)nbtld.get(tag);
List list1 = (List)nbtld.get(tag1);
if(list.size() != list1.size())
return false;
if(list.size() != list1.size()) {
return false;
}
Collections.sort(list);
Collections.sort(list1);
Iterator it = list.iterator();
@@ -1089,8 +1095,9 @@ public class _1710ItemUtils implements IDabItemUtils{
while(it.hasNext() && it1.hasNext()){
Object o = it.next();
Object o1 = it1.next();
if(!compareBaseTag(o, o1))
return false;
if(!compareBaseTag(o, o1)) {
return false;
}
}
return true;
}
@@ -1191,8 +1198,9 @@ public class _1710ItemUtils implements IDabItemUtils{
int durability = jo.getInt("durability");
ItemStack is = new ItemStack(material, amount, (short)durability);
JSONObject jo1 = jo.getJSONObject("tag");
if(jo1.length() == 0)
return is;
if(jo1.length() == 0) {
return is;
}
Object tag = convertJSONToCompoundTag(jo1);
Object nmis = getNMSCopy(is);
setTag(nmis, tag);

View File

@@ -683,8 +683,9 @@ public class _194ItemUtils implements IDabItemUtils{
ret = nbtiad.get(nbt);
break;
}
if(ret == null)
return null;
if(ret == null) {
return null;
}
return new JSONArray(new Object[]{ i, ret });
}
@@ -1012,8 +1013,9 @@ public class _194ItemUtils implements IDabItemUtils{
public boolean compareBaseTag(Object tag, Object tag1) throws Exception{
int i = ((byte)gti.invoke(tag));
int i1 = ((byte)gti.invoke(tag1));
if(i != i1)
return false;
if(i != i1) {
return false;
}
switch(i){
case NBTConstants.TYPE_BYTE:
Byte b = (byte)nbtbd.get(tag);
@@ -1065,15 +1067,18 @@ public class _194ItemUtils implements IDabItemUtils{
public boolean compareCompoundTag(Object tag, Object tag1) throws Exception{
Map<String, Object> map = (Map<String, Object>)getMap(tag);
Map<String, Object> map1 = (Map<String, Object>)getMap(tag1);
if(map.size() != map1.size())
return false;
if(!map.keySet().containsAll(map1.keySet()))
return false;
if(map.size() != map1.size()) {
return false;
}
if(!map.keySet().containsAll(map1.keySet())) {
return false;
}
for(Entry<String, Object> e : map.entrySet()){
Object o = e.getValue();
Object o1 = map1.get(e.getKey());
if(!compareBaseTag(o, o1))
return false;
if(!compareBaseTag(o, o1)) {
return false;
}
}
return true;
}
@@ -1083,10 +1088,12 @@ public class _194ItemUtils implements IDabItemUtils{
public boolean compareListTag(Object tag, Object tag1) throws Exception{
List list = (List)nbtld.get(tag);
List list1 = (List)nbtld.get(tag1);
if(list.size() != list1.size())
return false;
if(list.isEmpty() && list1.isEmpty())
return true;
if(list.size() != list1.size()) {
return false;
}
if(list.isEmpty() && list1.isEmpty()) {
return true;
}
List copy = new ArrayList(list);
List copy1 = new ArrayList(list1);
Iterator it = copy.iterator();
@@ -1103,8 +1110,9 @@ public class _194ItemUtils implements IDabItemUtils{
break;
}
}
if(!cont)
return false;
if(!cont) {
return false;
}
}
return copy.isEmpty() && copy1.isEmpty();
}
@@ -1203,8 +1211,9 @@ public class _194ItemUtils implements IDabItemUtils{
int durability = jo.getInt("durability");
ItemStack is = new ItemStack(material, amount, (short)durability);
JSONObject jo1 = jo.getJSONObject("tag");
if(jo1.length() == 0)
return is;
if(jo1.length() == 0) {
return is;
}
Object tag = convertJSONToCompoundTag(jo1);
Object nmis = getNMSCopy(is);
setTag(nmis, tag);

View File

@@ -120,28 +120,30 @@ public class PluginUtils {
} else {
Iterator attributeIterator = ((Map) commandNext.getValue()).entrySet().iterator();
while (true) while (true) {
Entry attributeNext;
if (!attributeIterator.hasNext()) {
continue label55;
}
attributeNext = (Entry) attributeIterator.next();
while (!attributeNext.getKey().equals("aliases")) {
while (true) {
while (true) {
Entry attributeNext;
if (!attributeIterator.hasNext()) {
continue label55;
}
attributeNext = (Entry) attributeIterator.next();
}
while (!"aliases".equals(attributeNext.getKey())) {
if (!attributeIterator.hasNext()) {
continue label55;
}
Object aliases = attributeNext.getValue();
if (aliases instanceof String) {
if (((String) aliases).equalsIgnoreCase(command)) {
plugins.add(plugin.getName());
attributeNext = (Entry) attributeIterator.next();
}
Object aliases = attributeNext.getValue();
if (aliases instanceof String) {
if (((String) aliases).equalsIgnoreCase(command)) {
plugins.add(plugin.getName());
}
} else {
((List<String>) aliases).stream().filter(str -> str.equalsIgnoreCase(command)).map(str -> plugin.getName()).forEach(plugins::add);
}
} else {
((List<String>) aliases).stream().filter(str -> str.equalsIgnoreCase(command)).map(str -> plugin.getName()).forEach(plugins::add);
}
}
}

View File

@@ -61,6 +61,7 @@ public class SoundPack {
}
}
@Override
public String toString() {
return sound.name() + "-" + a + "-" + b;
}

View File

@@ -72,21 +72,22 @@ public class StringUtils {
int[][] matrix = new int[m + 1][n + 1];
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (chars_strA[i - 1] == chars_strB[j - 1])
if (chars_strA[i - 1] == chars_strB[j - 1]) {
matrix[i][j] = matrix[i - 1][j - 1] + 1;
else
} else {
matrix[i][j] = Math.max(matrix[i][j - 1], matrix[i - 1][j]);
}
}
}
char[] result = new char[matrix[m][n]];
int currentIndex = result.length - 1;
while (matrix[m][n] != 0) {
if (matrix[n] == matrix[n - 1])
if (matrix[n] == matrix[n - 1]) {
n--;
else if (matrix[m][n] == matrix[m - 1][n])
} else if (matrix[m][n] == matrix[m - 1][n]) {
m--;
else {
} else {
result[currentIndex] = chars_strA[m - 1];
currentIndex--;
n--;

View File

@@ -82,7 +82,7 @@ public class Language2Book implements Language2Line {
// 遍历内容
for (String line : list) {
// 翻页
if (line.equals("[page]")) {
if ("[page]".equals(line)) {
book.addPages(page.build());
page = new PageBuilder();
}

View File

@@ -100,7 +100,7 @@ public class Language2Json implements Language2Line {
clickEvent = new OpenUrlEvent(message.substring(KEY_URL.length()));
}
// 换行
else if (message.equals("[break]")) {
else if ("[break]".equals(message)) {
append(current, clickEvent, hoverEvent);
// 删除动作
clickEvent = null;

View File

@@ -2,6 +2,9 @@ package me.skymc.taboolib.thread;
import java.util.LinkedList;
/**
* @author sky
*/
public class ThreadUtils {
private static PoolWorker[] threads;