Fix bugs
This commit is contained in:
parent
8f2b0f419e
commit
f3aa249fdd
@ -6,7 +6,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = 'me.skymc'
|
||||
version = '5.14'
|
||||
version = '5.15'
|
||||
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
|
@ -2,34 +2,35 @@ package io.izzel.taboolib.common.listener;
|
||||
|
||||
import io.izzel.taboolib.TabooLibAPI;
|
||||
import io.izzel.taboolib.Version;
|
||||
import io.izzel.taboolib.common.plugin.InternalPluginBridge;
|
||||
import io.izzel.taboolib.module.db.local.Local;
|
||||
import io.izzel.taboolib.module.db.local.LocalPlayer;
|
||||
import io.izzel.taboolib.module.inject.TListener;
|
||||
import io.izzel.taboolib.module.locale.TLocale;
|
||||
import io.izzel.taboolib.module.locale.logger.TLogger;
|
||||
import io.izzel.taboolib.module.tellraw.TellrawJson;
|
||||
import io.izzel.taboolib.util.ArrayUtil;
|
||||
import io.izzel.taboolib.util.Files;
|
||||
import io.izzel.taboolib.util.item.Items;
|
||||
import io.izzel.taboolib.util.lite.Signs;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.server.ServerCommandEvent;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
*/
|
||||
@TListener
|
||||
public class ListenerPlayerCommand implements Listener {
|
||||
public class ListenerCommand implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void cmd(PlayerCommandPreprocessEvent e) {
|
||||
if (e.getMessage().equalsIgnoreCase("/tabooLib")) {
|
||||
e.setCancelled(true);
|
||||
TLocale.Display.sendTitle(e.getPlayer(), "§fTabooLib", "§7TabooLib is enabled.");
|
||||
TLocale.Display.sendTitle(e.getPlayer(), "§fTabooLib", "§7TabooLib Enabled.");
|
||||
}
|
||||
if (e.getMessage().equalsIgnoreCase("/tellrawTest") && e.getPlayer().hasPermission("*")) {
|
||||
e.setCancelled(true);
|
||||
@ -39,13 +40,9 @@ public class ListenerPlayerCommand implements Listener {
|
||||
.append("§f]")
|
||||
.send(e.getPlayer());
|
||||
}
|
||||
if (e.getMessage().equalsIgnoreCase("/placeholderTest") && e.getPlayer().hasPermission("*")) {
|
||||
if (e.getMessage().equalsIgnoreCase("/fakesignTest") && e.getPlayer().hasPermission("*")) {
|
||||
e.setCancelled(true);
|
||||
e.getPlayer().sendMessage(InternalPluginBridge.handle().setPlaceholders(e.getPlayer(), "§8[§3§lTabooLib§8] §7PlaceholderAPI Test: §f%player_name%"));
|
||||
}
|
||||
if (e.getMessage().equalsIgnoreCase("/fakesignTest") && e.getPlayer().hasPermission("&")) {
|
||||
e.setCancelled(true);
|
||||
Signs.fakeSign(e.getPlayer(), ArrayUtil.asArray("§nFakeSign Test"), lines -> {
|
||||
Signs.fakeSign(e.getPlayer(), lines -> {
|
||||
e.getPlayer().sendMessage("§8[§3§lTabooLib§8] §7FakeSign Lines: §f" + Arrays.toString(lines));
|
||||
});
|
||||
}
|
||||
@ -71,6 +68,19 @@ public class ListenerPlayerCommand implements Listener {
|
||||
TabooLibAPI.debug(true);
|
||||
TLogger.getGlobalLogger().info("&aEnabled.");
|
||||
}
|
||||
} else if (e.getCommand().equalsIgnoreCase("libUpdateConfirm")) {
|
||||
if (Version.isAfter(Version.v1_8)) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
Bukkit.getConsoleSender().sendMessage("§f[TabooLib] §7正在下载资源文件...");
|
||||
Files.downloadFile("https://skymc.oss-cn-shanghai.aliyuncs.com/plugins/TabooLib.jar", new File("libs/TabooLib.jar"));
|
||||
Bukkit.getConsoleSender().sendMessage("§f[TabooLib] §7资源文件下载完成! 服务器即将重启...");
|
||||
try {
|
||||
Thread.sleep(3000L);
|
||||
} catch (InterruptedException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
Bukkit.shutdown();
|
||||
}
|
||||
}
|
||||
}
|
@ -195,8 +195,7 @@ public class NMSImpl extends NMS {
|
||||
return "entity.Villager." + name;
|
||||
}
|
||||
return "entity." + entity.getType().getEntityClass().getSimpleName() + ".name";
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
} catch (Throwable ignore) {
|
||||
}
|
||||
return "entity.null";
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ public class NBTBase {
|
||||
}
|
||||
|
||||
public String toJsonSimplified(int index) {
|
||||
return data instanceof String ? "\"" + data + "\"" : String.valueOf(data);
|
||||
return data instanceof String ? "\"" + data + "\"" : toString();
|
||||
}
|
||||
|
||||
public String asString() {
|
||||
@ -152,6 +152,10 @@ public class NBTBase {
|
||||
return new NBTBase((long) obj);
|
||||
} else if (obj instanceof Byte) {
|
||||
return new NBTBase((byte) obj);
|
||||
} else if (obj instanceof byte[]) {
|
||||
return new NBTBase((byte[]) obj);
|
||||
} else if (obj instanceof int[]) {
|
||||
return new NBTBase((int[]) obj);
|
||||
} else if (obj instanceof List) {
|
||||
return translateList(new NBTList(), (List) obj);
|
||||
} else if (obj instanceof Map) {
|
||||
|
@ -1,8 +1,7 @@
|
||||
package io.izzel.taboolib.module.nms.nbt;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.*;
|
||||
import io.izzel.taboolib.module.nms.NMS;
|
||||
import io.izzel.taboolib.util.Strings;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -64,7 +63,67 @@ public class NBTCompound extends NBTBase implements Map<String, NBTBase> {
|
||||
}
|
||||
|
||||
public static NBTCompound fromJson(String json) {
|
||||
return new Gson().fromJson(json, NBTCompound.class);
|
||||
return (NBTCompound) fromJson(new JsonParser().parse(json));
|
||||
}
|
||||
|
||||
static NBTBase fromJson(JsonElement element) {
|
||||
if (element instanceof JsonObject) {
|
||||
JsonObject json = (JsonObject) element;
|
||||
// base
|
||||
if (json.has("type") && json.has("data") && json.size() == 2) {
|
||||
switch (NBTType.parse(json.get("type").getAsString())) {
|
||||
case BYTE:
|
||||
return new NBTBase(json.get("data").getAsByte());
|
||||
case SHORT:
|
||||
return new NBTBase(json.get("data").getAsShort());
|
||||
case INT:
|
||||
return new NBTBase(json.get("data").getAsInt());
|
||||
case LONG:
|
||||
return new NBTBase(json.get("data").getAsLong());
|
||||
case FLOAT:
|
||||
return new NBTBase(json.get("data").getAsFloat());
|
||||
case DOUBLE:
|
||||
return new NBTBase(json.get("data").getAsDouble());
|
||||
case STRING:
|
||||
return new NBTBase(json.get("data").getAsString());
|
||||
case BYTE_ARRAY: {
|
||||
JsonArray array = json.get("data").getAsJsonArray();
|
||||
byte[] bytes = new byte[array.size()];
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
bytes[i] = array.get(i).getAsByte();
|
||||
}
|
||||
return new NBTBase(bytes);
|
||||
}
|
||||
case INT_ARRAY: {
|
||||
JsonArray array = json.get("data").getAsJsonArray();
|
||||
int[] ints = new int[array.size()];
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
ints[i] = array.get(i).getAsInt();
|
||||
}
|
||||
return new NBTBase(ints);
|
||||
}
|
||||
default:
|
||||
return new NBTBase("error: " + element);
|
||||
}
|
||||
}
|
||||
// compound
|
||||
else {
|
||||
NBTCompound compound = new NBTCompound();
|
||||
for (Entry<String, JsonElement> elementEntry : json.entrySet()) {
|
||||
compound.put(elementEntry.getKey(), fromJson(elementEntry.getValue()));
|
||||
}
|
||||
return compound;
|
||||
}
|
||||
}
|
||||
// list
|
||||
else if (element instanceof JsonArray) {
|
||||
NBTList list = new NBTList();
|
||||
for (JsonElement jsonElement : (JsonArray) element) {
|
||||
list.add(fromJson(jsonElement));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
return new NBTBase("error: " + element);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.izzel.taboolib.module.nms.nbt;
|
||||
|
||||
import com.google.common.base.Enums;
|
||||
|
||||
/**
|
||||
* @Author 坏黑
|
||||
* @Since 2019-05-24 17:46
|
||||
@ -39,4 +41,8 @@ public enum NBTType {
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public static NBTType parse(String in) {
|
||||
return Enums.getIfPresent(NBTType.class, in).or(END);
|
||||
}
|
||||
}
|
||||
|
@ -10,11 +10,13 @@ import org.bukkit.plugin.Plugin;
|
||||
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
|
||||
|
||||
import java.io.*;
|
||||
import java.math.BigInteger;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.jar.JarFile;
|
||||
@ -347,6 +349,22 @@ public class Files {
|
||||
return new YamlConfiguration();
|
||||
}
|
||||
|
||||
public static String getFileHash(File file, String algorithm) {
|
||||
try(FileInputStream fileInputStream = new FileInputStream(file)) {
|
||||
MessageDigest digest = MessageDigest.getInstance(algorithm);
|
||||
byte[] buffer = new byte[1024];
|
||||
int length;
|
||||
while ((length = fileInputStream.read(buffer, 0, 1024)) != -1) {
|
||||
digest.update(buffer, 0, length);
|
||||
}
|
||||
byte[] md5Bytes = digest.digest();
|
||||
return new BigInteger(1, md5Bytes).toString(16);
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static Class getCaller(Class<?> obj) {
|
||||
try {
|
||||
return Class.forName(Thread.currentThread().getStackTrace()[3].getClassName(), false, obj.getClassLoader());
|
||||
|
Loading…
Reference in New Issue
Block a user