update 5.03 beta 23

This commit is contained in:
坏黑 2019-08-18 01:13:30 +08:00
parent a102bcaf7f
commit b6c154e914
8 changed files with 68 additions and 77 deletions

View File

@ -1,6 +1,5 @@
package io.izzel.taboolib.common.plugin; package io.izzel.taboolib.common.plugin;
import com.sk89q.worldguard.protection.managers.RegionManager;
import io.izzel.taboolib.module.lite.SimpleVersionControl; import io.izzel.taboolib.module.lite.SimpleVersionControl;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@ -52,8 +51,6 @@ public abstract class InternalPluginBridge {
abstract public boolean permissionHas(Player player, String perm); abstract public boolean permissionHas(Player player, String perm);
abstract public RegionManager worldguardRegionManager(World world);
abstract public Collection<String> worldguardGetRegions(World world); abstract public Collection<String> worldguardGetRegions(World world);
abstract public List<String> worldguardGetRegion(World world, Location location); abstract public List<String> worldguardGetRegion(World world, Location location);

View File

@ -128,20 +128,6 @@ public class BridgeImpl extends InternalPluginBridge {
return worldguardRegionManager(world).getRegions().values().stream().filter(r -> r.contains(location.getBlockX(), location.getBlockY(), location.getBlockZ())).map(ProtectedRegion::getId).collect(Collectors.toList()); return worldguardRegionManager(world).getRegions().values().stream().filter(r -> r.contains(location.getBlockX(), location.getBlockY(), location.getBlockZ())).map(ProtectedRegion::getId).collect(Collectors.toList());
} }
@Override
public RegionManager worldguardRegionManager(World world) {
if (WorldGuardPlugin.inst().getDescription().getVersion().startsWith("7")) {
return WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world));
} else {
try {
return (RegionManager) getRegionManager.invoke(WorldGuardPlugin.inst(), world);
} catch (Throwable t) {
t.printStackTrace();
}
return null;
}
}
@Override @Override
public boolean economyHooked() { public boolean economyHooked() {
return economy != null; return economy != null;
@ -237,4 +223,17 @@ public class BridgeImpl extends InternalPluginBridge {
public Class getClass(String name) throws ClassNotFoundException { public Class getClass(String name) throws ClassNotFoundException {
return Class.forName(name); return Class.forName(name);
} }
private RegionManager worldguardRegionManager(World world) {
if (WorldGuardPlugin.inst().getDescription().getVersion().startsWith("7")) {
return WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world));
} else {
try {
return (RegionManager) getRegionManager.invoke(WorldGuardPlugin.inst(), world);
} catch (Throwable t) {
t.printStackTrace();
}
return null;
}
}
} }

View File

@ -1,33 +1,18 @@
package io.izzel.taboolib.module.ai; package io.izzel.taboolib.module.ai;
import io.izzel.taboolib.module.inject.TFunction; import io.izzel.taboolib.module.inject.TInject;
import io.izzel.taboolib.module.lite.SimpleVersionControl;
/** /**
* @Author sky * @Author sky
* @Since 2018-09-19 20:31 * @Since 2018-09-19 20:31
*/ */
@TFunction(enable = "init")
public class SimpleAiSelector { public class SimpleAiSelector {
@TInject(asm = "io.izzel.taboolib.module.ai.internal.InternalPathfinderCreator")
private static PathfinderCreator internalPathfinderCreator; private static PathfinderCreator internalPathfinderCreator;
@TInject(asm = "io.izzel.taboolib.module.ai.internal.InternalPathfinderExecutor")
private static PathfinderExecutor internalPathfinderExecutor; private static PathfinderExecutor internalPathfinderExecutor;
static void init() {
try {
internalPathfinderCreator = (PathfinderCreator) SimpleVersionControl.createNMS("io.izzel.taboolib.module.ai.internal.InternalPathfinderCreator").translate().newInstance();
internalPathfinderExecutor = (PathfinderExecutor) SimpleVersionControl.createNMS("io.izzel.taboolib.module.ai.internal.InternalPathfinderExecutor").translate().newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
// *********************************
//
// Getter and Setter
//
// *********************************
public static PathfinderExecutor getExecutor() { public static PathfinderExecutor getExecutor() {
return internalPathfinderExecutor; return internalPathfinderExecutor;
} }

View File

@ -0,0 +1,43 @@
package io.izzel.taboolib.module.inject;
import io.izzel.taboolib.TabooLibLoader;
import io.izzel.taboolib.module.lite.SimpleVersionControl;
import io.izzel.taboolib.module.locale.logger.TLogger;
import org.bukkit.plugin.Plugin;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
/**
* @Author sky
* @Since 2019-08-18 0:47
*/
public class TInjectAsm implements TabooLibLoader.Loader {
@Override
public void postLoad(Plugin plugin, Class<?> pluginClass) {
for (Field declaredField : pluginClass.getDeclaredFields()) {
TInject annotation = declaredField.getAnnotation(TInject.class);
if (annotation == null || annotation.asm().isEmpty()) {
continue;
}
Object instance = null;
// 如果是非静态类型
if (!Modifier.isStatic(declaredField.getModifiers())) {
// 是否为主类
if (pluginClass.equals(plugin.getClass())) {
instance = plugin;
} else {
TLogger.getGlobalLogger().error(declaredField.getName() + " is not a static field. (" + pluginClass.getName() + ")");
continue;
}
}
try {
declaredField.setAccessible(true);
declaredField.set(instance, SimpleVersionControl.createNMS(annotation.asm()).useCache().translate(plugin).newInstance());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}

View File

@ -148,8 +148,6 @@ public class TInjectLoader implements TabooLibLoader.Loader {
TInjectTask tInjectTask = injectTypes.get(declaredField.getType()); TInjectTask tInjectTask = injectTypes.get(declaredField.getType());
if (tInjectTask != null) { if (tInjectTask != null) {
inject(plugin, declaredField, instance, annotation, tInjectTask, pluginClass); inject(plugin, declaredField, instance, annotation, tInjectTask, pluginClass);
} else if (annotation.state() == TInject.State.NONE) {
TLogger.getGlobalLogger().error(declaredField.getName() + " is an invalid inject type. (" + pluginClass.getName() + ")");
} }
} }
} }
@ -160,7 +158,7 @@ public class TInjectLoader implements TabooLibLoader.Loader {
injectTask.run(plugin, field, annotation, pluginClass, instance); injectTask.run(plugin, field, annotation, pluginClass, instance);
TabooLibAPI.debug(field.getName() + " injected. (" + field.getType().getName() + ")"); TabooLibAPI.debug(field.getName() + " injected. (" + field.getType().getName() + ")");
} catch (Throwable e) { } catch (Throwable e) {
TLogger.getGlobalLogger().error(field.getName() + " inject failed: " + e.getMessage() + " (" + field.getType().getName() + ")"); TLogger.getGlobalLogger().error(field.getName() + " inject failed: " + e.getMessage() + " (" + field.getName() + ")");
if (e.getMessage() == null) { if (e.getMessage() == null) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -1,7 +1,6 @@
package io.izzel.taboolib.module.nms; package io.izzel.taboolib.module.nms;
import io.izzel.taboolib.module.inject.TFunction; import io.izzel.taboolib.module.inject.TInject;
import io.izzel.taboolib.module.lite.SimpleVersionControl;
import io.izzel.taboolib.module.nms.nbt.NBTCompound; import io.izzel.taboolib.module.nms.nbt.NBTCompound;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -12,23 +11,15 @@ import org.bukkit.inventory.ItemStack;
* @Author 坏黑 * @Author 坏黑
* @Since 2018-11-09 14:38 * @Since 2018-11-09 14:38
*/ */
@TFunction(enable = "init")
public abstract class NMS { public abstract class NMS {
@TInject(asm = "io.izzel.taboolib.module.nms.NMSImpl")
private static NMS impl; private static NMS impl;
public static NMS handle() { public static NMS handle() {
return impl; return impl;
} }
static void init() {
try {
impl = (NMS) SimpleVersionControl.createNMS("io.izzel.taboolib.module.nms.NMSImpl").translate().newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
abstract public boolean isRunning(); abstract public boolean isRunning();
abstract public Object toPacketPlayOutWorldParticles(Particle var1, boolean var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9, int var10, Object var11); abstract public Object toPacketPlayOutWorldParticles(Particle var1, boolean var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9, int var10, Object var11);

View File

@ -2,9 +2,9 @@ package io.izzel.taboolib.module.packet;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import io.izzel.taboolib.module.packet.channel.ChannelExecutor; import io.izzel.taboolib.module.inject.TInject;
import io.izzel.taboolib.module.lite.SimpleVersionControl;
import io.izzel.taboolib.module.inject.TListener; import io.izzel.taboolib.module.inject.TListener;
import io.izzel.taboolib.module.packet.channel.ChannelExecutor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -25,16 +25,9 @@ import java.util.Optional;
@TListener @TListener
public class TPacketHandler implements Listener { public class TPacketHandler implements Listener {
private static Map<String, List<TPacketListener>> packetListeners = Maps.newHashMap(); @TInject(asm = "io.izzel.taboolib.module.packet.channel.InternalChannelExecutor")
private static ChannelExecutor channelExecutor; private static ChannelExecutor channelExecutor;
private static Map<String, List<TPacketListener>> packetListeners = Maps.newHashMap();
public TPacketHandler() {
try {
channelExecutor = (ChannelExecutor) SimpleVersionControl.createNMS("io.izzel.taboolib.module.packet.channel.InternalChannelExecutor").translate().newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
@EventHandler @EventHandler
public void onJoin(PlayerJoinEvent e) { public void onJoin(PlayerJoinEvent e) {

View File

@ -1,8 +1,7 @@
package io.izzel.taboolib.module.tellraw; package io.izzel.taboolib.module.tellraw;
import io.izzel.taboolib.module.inject.TFunction; import io.izzel.taboolib.module.inject.TInject;
import io.izzel.taboolib.module.inject.TSchedule; import io.izzel.taboolib.module.inject.TSchedule;
import io.izzel.taboolib.module.lite.SimpleVersionControl;
import io.izzel.taboolib.module.tellraw.internal.AbstractTellraw; import io.izzel.taboolib.module.tellraw.internal.AbstractTellraw;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -10,33 +9,19 @@ import org.bukkit.Bukkit;
* @Author 坏黑 * @Author 坏黑
* @Since 2018-11-07 22:58 * @Since 2018-11-07 22:58
*/ */
@TFunction(enable = "init")
public class TellrawCreator { public class TellrawCreator {
@TInject(asm = "io.izzel.taboolib.module.tellraw.internal.InternalTellraw")
private static AbstractTellraw abstractTellraw; private static AbstractTellraw abstractTellraw;
private static boolean viaVersionLoaded; private static boolean viaVersionLoaded;
private static boolean protocolSupportLoaded; private static boolean protocolSupportLoaded;
public static void init() {
try {
abstractTellraw = (AbstractTellraw) SimpleVersionControl.createNMS("io.izzel.taboolib.module.tellraw.internal.InternalTellraw").translate().newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
@TSchedule @TSchedule
static void tick() { static void tick() {
viaVersionLoaded = Bukkit.getPluginManager().getPlugin("ViaVersion") != null; viaVersionLoaded = Bukkit.getPluginManager().getPlugin("ViaVersion") != null;
protocolSupportLoaded = Bukkit.getPluginManager().getPlugin("ProtocolSupport") != null; protocolSupportLoaded = Bukkit.getPluginManager().getPlugin("ProtocolSupport") != null;
} }
// *********************************
//
// Getter and Setter
//
// *********************************
public static AbstractTellraw getAbstractTellraw() { public static AbstractTellraw getAbstractTellraw() {
return abstractTellraw; return abstractTellraw;
} }