Add backwards compatibility for 1.14
This commit is contained in:
parent
7661635eb9
commit
9656ed4249
@ -6,6 +6,7 @@ import me.libraryaddict.disguise.utilities.LibsPremium;
|
|||||||
import me.libraryaddict.disguise.utilities.metrics.MetricsInitalizer;
|
import me.libraryaddict.disguise.utilities.metrics.MetricsInitalizer;
|
||||||
import me.libraryaddict.disguise.utilities.packets.PacketsManager;
|
import me.libraryaddict.disguise.utilities.packets.PacketsManager;
|
||||||
import me.libraryaddict.disguise.utilities.parser.DisguiseParser;
|
import me.libraryaddict.disguise.utilities.parser.DisguiseParser;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -54,7 +55,8 @@ public class LibsDisguises extends JavaPlugin {
|
|||||||
YamlConfiguration pluginYml = ReflectionManager.getPluginYaml(getClassLoader());
|
YamlConfiguration pluginYml = ReflectionManager.getPluginYaml(getClassLoader());
|
||||||
buildNumber = StringUtils.stripToNull(pluginYml.getString("build-number"));
|
buildNumber = StringUtils.stripToNull(pluginYml.getString("build-number"));
|
||||||
|
|
||||||
getLogger().info("Discovered nms version: " + ReflectionManager.getBukkitVersion());
|
getLogger().info("Discovered nms version: " + ReflectionManager.getBukkitVersion() + " | " +
|
||||||
|
ReflectionManager.getVersion());
|
||||||
|
|
||||||
getLogger().info("Jenkins Build: " + (isNumberedBuild() ? "#" : "") + getBuildNo());
|
getLogger().info("Jenkins Build: " + (isNumberedBuild() ? "#" : "") + getBuildNo());
|
||||||
|
|
||||||
@ -68,9 +70,9 @@ public class LibsDisguises extends JavaPlugin {
|
|||||||
" Command " + "Blocks, Admins)");
|
" Command " + "Blocks, Admins)");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ReflectionManager.getMinecraftVersion().startsWith("1.15")) {
|
if (ReflectionManager.getVersion() == null) {
|
||||||
getLogger().severe("You're using the wrong version of Lib's Disguises for your server! This is " +
|
getLogger().severe("You're using the wrong version of Lib's Disguises for your server! This is " +
|
||||||
"intended for 1.15!");
|
"intended for 1.14 & 1.15!");
|
||||||
getPluginLoader().disablePlugin(this);
|
getPluginLoader().disablePlugin(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -90,6 +92,8 @@ public class LibsDisguises extends JavaPlugin {
|
|||||||
|
|
||||||
listener = new DisguiseListener(this);
|
listener = new DisguiseListener(this);
|
||||||
|
|
||||||
|
registerCommand("libsdisguises", new LibsDisguisesCommand());
|
||||||
|
|
||||||
if (!DisguiseConfig.isDisableCommands()) {
|
if (!DisguiseConfig.isDisableCommands()) {
|
||||||
registerCommand("disguise", new DisguiseCommand());
|
registerCommand("disguise", new DisguiseCommand());
|
||||||
registerCommand("undisguise", new UndisguiseCommand());
|
registerCommand("undisguise", new UndisguiseCommand());
|
||||||
@ -101,7 +105,6 @@ public class LibsDisguises extends JavaPlugin {
|
|||||||
registerCommand("undisguiseradius", new UndisguiseRadiusCommand(getConfig().getInt("UndisguiseRadiusMax")));
|
registerCommand("undisguiseradius", new UndisguiseRadiusCommand(getConfig().getInt("UndisguiseRadiusMax")));
|
||||||
registerCommand("disguisehelp", new DisguiseHelpCommand());
|
registerCommand("disguisehelp", new DisguiseHelpCommand());
|
||||||
registerCommand("disguiseclone", new DisguiseCloneCommand());
|
registerCommand("disguiseclone", new DisguiseCloneCommand());
|
||||||
registerCommand("libsdisguises", new LibsDisguisesCommand());
|
|
||||||
registerCommand("disguiseviewself", new DisguiseViewSelfCommand());
|
registerCommand("disguiseviewself", new DisguiseViewSelfCommand());
|
||||||
registerCommand("disguisemodify", new DisguiseModifyCommand());
|
registerCommand("disguisemodify", new DisguiseModifyCommand());
|
||||||
registerCommand("disguisemodifyentity", new DisguiseModifyEntityCommand());
|
registerCommand("disguisemodifyentity", new DisguiseModifyEntityCommand());
|
||||||
|
@ -64,6 +64,10 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements
|
|||||||
ArrayList<String> classes = new ArrayList<>();
|
ArrayList<String> classes = new ArrayList<>();
|
||||||
|
|
||||||
for (DisguiseType type : DisguiseType.values()) {
|
for (DisguiseType type : DisguiseType.values()) {
|
||||||
|
if (type.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
classes.add(type.toReadable());
|
classes.add(type.toReadable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +83,10 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements
|
|||||||
|
|
||||||
if (!isInteger(args[0])) {
|
if (!isInteger(args[0])) {
|
||||||
for (DisguiseType t : DisguiseType.values()) {
|
for (DisguiseType t : DisguiseType.values()) {
|
||||||
|
if (t.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (t.toReadable().replaceAll(" ", "").equalsIgnoreCase(args[0].replaceAll("_", ""))) {
|
if (t.toReadable().replaceAll(" ", "").equalsIgnoreCase(args[0].replaceAll("_", ""))) {
|
||||||
baseType = t;
|
baseType = t;
|
||||||
starting = 1;
|
starting = 1;
|
||||||
@ -193,6 +201,10 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements
|
|||||||
|
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
for (DisguiseType type : DisguiseType.values()) {
|
for (DisguiseType type : DisguiseType.values()) {
|
||||||
|
if (type.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
tabs.add(type.toReadable().replaceAll(" ", "_"));
|
tabs.add(type.toReadable().replaceAll(" ", "_"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,6 +215,10 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements
|
|||||||
|
|
||||||
if (!isInteger(args[0])) {
|
if (!isInteger(args[0])) {
|
||||||
for (DisguiseType t : DisguiseType.values()) {
|
for (DisguiseType t : DisguiseType.values()) {
|
||||||
|
if (t.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (t.toReadable().replaceAll(" ", "").equalsIgnoreCase(args[0].replaceAll("_", ""))) {
|
if (t.toReadable().replaceAll(" ", "").equalsIgnoreCase(args[0].replaceAll("_", ""))) {
|
||||||
starting = 2;
|
starting = 2;
|
||||||
break;
|
break;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package me.libraryaddict.disguise.disguisetypes;
|
package me.libraryaddict.disguise.disguisetypes;
|
||||||
|
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsAdded;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
import me.libraryaddict.disguise.utilities.translations.TranslateType;
|
import me.libraryaddict.disguise.utilities.translations.TranslateType;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.omg.CORBA.UNKNOWN;
|
|
||||||
|
|
||||||
public enum DisguiseType {
|
public enum DisguiseType {
|
||||||
AREA_EFFECT_CLOUD(3, 0),
|
AREA_EFFECT_CLOUD(3, 0),
|
||||||
@ -15,7 +16,7 @@ public enum DisguiseType {
|
|||||||
|
|
||||||
BAT,
|
BAT,
|
||||||
|
|
||||||
BEE,
|
@NmsAdded(added = NmsVersion.v1_15) BEE,
|
||||||
|
|
||||||
BLAZE,
|
BLAZE,
|
||||||
|
|
||||||
@ -256,7 +257,11 @@ public enum DisguiseType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setEntityType(EntityType.valueOf(name()));
|
try {
|
||||||
|
setEntityType(EntityType.valueOf(name()));
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDefaultData() {
|
public int getDefaultData() {
|
||||||
@ -275,6 +280,10 @@ public enum DisguiseType {
|
|||||||
return entityType;
|
return entityType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setEntityType(EntityType entityType) {
|
||||||
|
this.entityType = entityType;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The object type send in packets when spawning a misc entity. Otherwise, -1.
|
* The object type send in packets when spawning a misc entity. Otherwise, -1.
|
||||||
*
|
*
|
||||||
@ -301,6 +310,10 @@ public enum DisguiseType {
|
|||||||
return watcherClass;
|
return watcherClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWatcherClass(Class<? extends FlagWatcher> c) {
|
||||||
|
watcherClass = c;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isMisc() {
|
public boolean isMisc() {
|
||||||
return getEntityType() != null && !getEntityType().isAlive();
|
return getEntityType() != null && !getEntityType().isAlive();
|
||||||
}
|
}
|
||||||
@ -317,14 +330,6 @@ public enum DisguiseType {
|
|||||||
return this == DisguiseType.UNKNOWN;
|
return this == DisguiseType.UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setEntityType(EntityType entityType) {
|
|
||||||
this.entityType = entityType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWatcherClass(Class<? extends FlagWatcher> c) {
|
|
||||||
watcherClass = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toReadable() {
|
public String toReadable() {
|
||||||
String[] split = name().split("_");
|
String[] split = name().split("_");
|
||||||
|
|
||||||
|
@ -7,6 +7,10 @@ import com.comphenix.protocol.wrappers.nbt.NbtFactory;
|
|||||||
import com.comphenix.protocol.wrappers.nbt.NbtType;
|
import com.comphenix.protocol.wrappers.nbt.NbtType;
|
||||||
import me.libraryaddict.disguise.disguisetypes.watchers.*;
|
import me.libraryaddict.disguise.disguisetypes.watchers.*;
|
||||||
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsAdded;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsRemoved;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||||
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -108,8 +112,10 @@ public class MetaIndex<Y> {
|
|||||||
*/
|
*/
|
||||||
public static MetaIndex<Byte> BAT_HANGING = new MetaIndex<>(BatWatcher.class, 0, (byte) 1);
|
public static MetaIndex<Byte> BAT_HANGING = new MetaIndex<>(BatWatcher.class, 0, (byte) 1);
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public static MetaIndex<Byte> BEE_META = new MetaIndex<>(BeeWatcher.class, 0, (byte) 0);
|
public static MetaIndex<Byte> BEE_META = new MetaIndex<>(BeeWatcher.class, 0, (byte) 0);
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public static MetaIndex<Integer> BEE_ANGER = new MetaIndex<>(BeeWatcher.class, 1, 0);
|
public static MetaIndex<Integer> BEE_ANGER = new MetaIndex<>(BeeWatcher.class, 1, 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -199,6 +205,7 @@ public class MetaIndex<Y> {
|
|||||||
*/
|
*/
|
||||||
public static MetaIndex<Boolean> ENDERMAN_AGRESSIVE = new MetaIndex<>(EndermanWatcher.class, 1, false);
|
public static MetaIndex<Boolean> ENDERMAN_AGRESSIVE = new MetaIndex<>(EndermanWatcher.class, 1, false);
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public static MetaIndex<Boolean> ENDERMAN_UNKNOWN = new MetaIndex<>(EndermanWatcher.class, 2, false);
|
public static MetaIndex<Boolean> ENDERMAN_UNKNOWN = new MetaIndex<>(EndermanWatcher.class, 2, false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -351,6 +358,7 @@ public class MetaIndex<Y> {
|
|||||||
/**
|
/**
|
||||||
* How many bee stings does the entity have
|
* How many bee stings does the entity have
|
||||||
*/
|
*/
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public static MetaIndex<Integer> LIVING_STINGS = new MetaIndex<>(LivingWatcher.class, 5, 0);
|
public static MetaIndex<Integer> LIVING_STINGS = new MetaIndex<>(LivingWatcher.class, 5, 0);
|
||||||
|
|
||||||
public static MetaIndex<Optional<BlockPosition>> LIVING_BED_POSITION = new MetaIndex<>(LivingWatcher.class, 6,
|
public static MetaIndex<Optional<BlockPosition>> LIVING_BED_POSITION = new MetaIndex<>(LivingWatcher.class, 6,
|
||||||
@ -488,6 +496,7 @@ public class MetaIndex<Y> {
|
|||||||
|
|
||||||
public static MetaIndex<Byte> TRIDENT_ENCHANTS = new MetaIndex<>(TridentWatcher.class, 0, (byte) 0);
|
public static MetaIndex<Byte> TRIDENT_ENCHANTS = new MetaIndex<>(TridentWatcher.class, 0, (byte) 0);
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public static MetaIndex<Boolean> TRIDENT_ENCHANTED = new MetaIndex<>(TridentWatcher.class, 1, false);
|
public static MetaIndex<Boolean> TRIDENT_ENCHANTED = new MetaIndex<>(TridentWatcher.class, 1, false);
|
||||||
|
|
||||||
public static MetaIndex<Integer> TROPICAL_FISH_VARIANT = new MetaIndex<>(TropicalFishWatcher.class, 0, 0);
|
public static MetaIndex<Integer> TROPICAL_FISH_VARIANT = new MetaIndex<>(TropicalFishWatcher.class, 0, 0);
|
||||||
@ -525,9 +534,12 @@ public class MetaIndex<Y> {
|
|||||||
|
|
||||||
public static MetaIndex<Boolean> WITHER_SKULL_BLUE = new MetaIndex<>(WitherSkullWatcher.class, 0, false);
|
public static MetaIndex<Boolean> WITHER_SKULL_BLUE = new MetaIndex<>(WitherSkullWatcher.class, 0, false);
|
||||||
|
|
||||||
public static MetaIndex<Boolean> WOLF_BEGGING = new MetaIndex<>(WolfWatcher.class, 0, false);
|
public static MetaIndex<Boolean> WOLF_BEGGING = new MetaIndex<>(WolfWatcher.class, 1, false);
|
||||||
|
|
||||||
public static MetaIndex<Integer> WOLF_COLLAR = new MetaIndex<>(WolfWatcher.class, 1, 14);
|
@NmsRemoved(removed = NmsVersion.v1_15)
|
||||||
|
public static MetaIndex<Float> WOLF_DAMAGE = new MetaIndex<>(WolfWatcher.class, 0, 1F);
|
||||||
|
|
||||||
|
public static MetaIndex<Integer> WOLF_COLLAR = new MetaIndex<>(WolfWatcher.class, 2, 14);
|
||||||
|
|
||||||
public static MetaIndex<Boolean> ZOMBIE_BABY = new MetaIndex<>(ZombieWatcher.class, 0, false);
|
public static MetaIndex<Boolean> ZOMBIE_BABY = new MetaIndex<>(ZombieWatcher.class, 0, false);
|
||||||
|
|
||||||
@ -545,6 +557,7 @@ public class MetaIndex<Y> {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
setValues();
|
setValues();
|
||||||
|
eliminateBlankIndexes();
|
||||||
orderMetaIndexes();
|
orderMetaIndexes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -826,6 +839,10 @@ public class MetaIndex<Y> {
|
|||||||
if (field.getType() != MetaIndex.class)
|
if (field.getType() != MetaIndex.class)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (!ReflectionManager.isSupported(field)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
MetaIndex index = (MetaIndex) field.get(null);
|
MetaIndex index = (MetaIndex) field.get(null);
|
||||||
|
|
||||||
if (index == null)
|
if (index == null)
|
||||||
|
@ -2,6 +2,8 @@ package me.libraryaddict.disguise.disguisetypes.watchers;
|
|||||||
|
|
||||||
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
||||||
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsAdded;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by libraryaddict on 6/08/2018.
|
* Created by libraryaddict on 6/08/2018.
|
||||||
@ -11,12 +13,14 @@ public class TridentWatcher extends ArrowWatcher {
|
|||||||
super(disguise);
|
super(disguise);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
|
public boolean isEnchanted() {
|
||||||
|
return getData(MetaIndex.TRIDENT_ENCHANTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NmsAdded(added = NmsVersion.v1_15)
|
||||||
public void setEnchanted(boolean enchanted) {
|
public void setEnchanted(boolean enchanted) {
|
||||||
setData(MetaIndex.TRIDENT_ENCHANTED, enchanted);
|
setData(MetaIndex.TRIDENT_ENCHANTED, enchanted);
|
||||||
sendData(MetaIndex.TRIDENT_ENCHANTED);
|
sendData(MetaIndex.TRIDENT_ENCHANTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnchanted() {
|
|
||||||
return getData(MetaIndex.TRIDENT_ENCHANTED);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package me.libraryaddict.disguise.disguisetypes.watchers;
|
|||||||
import me.libraryaddict.disguise.disguisetypes.AnimalColor;
|
import me.libraryaddict.disguise.disguisetypes.AnimalColor;
|
||||||
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
||||||
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsRemoved;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
|
|
||||||
public class WolfWatcher extends TameableWatcher {
|
public class WolfWatcher extends TameableWatcher {
|
||||||
@ -15,23 +17,6 @@ public class WolfWatcher extends TameableWatcher {
|
|||||||
return AnimalColor.getColorByWool(getData(MetaIndex.WOLF_COLLAR)).getDyeColor();
|
return AnimalColor.getColorByWool(getData(MetaIndex.WOLF_COLLAR)).getDyeColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBegging() {
|
|
||||||
return getData(MetaIndex.WOLF_BEGGING);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBegging(boolean begging) {
|
|
||||||
setData(MetaIndex.WOLF_BEGGING, begging);
|
|
||||||
sendData(MetaIndex.WOLF_BEGGING);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAngry() {
|
|
||||||
return isTameableFlag(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAngry(boolean angry) {
|
|
||||||
setTameableFlag(2, angry);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void setCollarColor(AnimalColor color) {
|
public void setCollarColor(AnimalColor color) {
|
||||||
setCollarColor(color.getDyeColor());
|
setCollarColor(color.getDyeColor());
|
||||||
@ -49,4 +34,42 @@ public class WolfWatcher extends TameableWatcher {
|
|||||||
setData(MetaIndex.WOLF_COLLAR, (int) newColor.getWoolData());
|
setData(MetaIndex.WOLF_COLLAR, (int) newColor.getWoolData());
|
||||||
sendData(MetaIndex.WOLF_COLLAR);
|
sendData(MetaIndex.WOLF_COLLAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isBegging() {
|
||||||
|
return getData(MetaIndex.WOLF_BEGGING);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBegging(boolean begging) {
|
||||||
|
setData(MetaIndex.WOLF_BEGGING, begging);
|
||||||
|
sendData(MetaIndex.WOLF_BEGGING);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAngry() {
|
||||||
|
return isTameableFlag(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAngry(boolean angry) {
|
||||||
|
setTameableFlag(2, angry);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for tail rotation.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@NmsRemoved(removed = NmsVersion.v1_15)
|
||||||
|
public float getDamageTaken() {
|
||||||
|
return getData(MetaIndex.WOLF_DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for tail rotation.
|
||||||
|
*
|
||||||
|
* @param damage
|
||||||
|
*/
|
||||||
|
@NmsRemoved(removed = NmsVersion.v1_15)
|
||||||
|
public void setDamageTaken(float damage) {
|
||||||
|
setData(MetaIndex.WOLF_DAMAGE, damage);
|
||||||
|
sendData(MetaIndex.WOLF_DAMAGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,8 @@ public enum DisguiseSound {
|
|||||||
BAT(Sound.ENTITY_BAT_HURT, null, Sound.ENTITY_BAT_DEATH, Sound.ENTITY_BAT_AMBIENT, Sound.ENTITY_PLAYER_SMALL_FALL,
|
BAT(Sound.ENTITY_BAT_HURT, null, Sound.ENTITY_BAT_DEATH, Sound.ENTITY_BAT_AMBIENT, Sound.ENTITY_PLAYER_SMALL_FALL,
|
||||||
Sound.ENTITY_BAT_LOOP, Sound.ENTITY_PLAYER_BIG_FALL, Sound.ENTITY_BAT_TAKEOFF),
|
Sound.ENTITY_BAT_LOOP, Sound.ENTITY_PLAYER_BIG_FALL, Sound.ENTITY_BAT_TAKEOFF),
|
||||||
|
|
||||||
BEE(Sound.ENTITY_BEE_HURT, null, Sound.ENTITY_BEE_DEATH, null, Sound.ENTITY_BEE_LOOP,
|
BEE("ENTITY_BEE_HURT", null, "ENTITY_BEE_DEATH", null, "ENTITY_BEE_LOOP", "ENTITY_BEE_LOOP_AGGRESSIVE",
|
||||||
Sound.ENTITY_BEE_LOOP_AGGRESSIVE, Sound.ENTITY_BEE_POLLINATE, Sound.ENTITY_BEE_STING),
|
"ENTITY_BEE_POLLINATE", "ENTITY_BEE_STING"),
|
||||||
|
|
||||||
BLAZE(Sound.ENTITY_BLAZE_HURT, null, Sound.ENTITY_BLAZE_DEATH, Sound.ENTITY_BLAZE_AMBIENT,
|
BLAZE(Sound.ENTITY_BLAZE_HURT, null, Sound.ENTITY_BLAZE_DEATH, Sound.ENTITY_BLAZE_AMBIENT,
|
||||||
Sound.ENTITY_PLAYER_SMALL_FALL, Sound.ENTITY_PLAYER_BIG_FALL, Sound.ENTITY_BLAZE_BURN,
|
Sound.ENTITY_PLAYER_SMALL_FALL, Sound.ENTITY_PLAYER_BIG_FALL, Sound.ENTITY_BLAZE_BURN,
|
||||||
@ -249,28 +249,60 @@ public enum DisguiseSound {
|
|||||||
private float damageSoundVolume = 1F;
|
private float damageSoundVolume = 1F;
|
||||||
private LinkedHashMap<Object, SoundType> disguiseSounds = new LinkedHashMap<>();
|
private LinkedHashMap<Object, SoundType> disguiseSounds = new LinkedHashMap<>();
|
||||||
|
|
||||||
DisguiseSound(Object hurt, Object step, Object death, Object idle, Sound... sounds) {
|
DisguiseSound(Object hurt, Object step, Object death, Object idle, Object... sounds) {
|
||||||
addSound(hurt, SoundType.HURT);
|
addSound(hurt, SoundType.HURT);
|
||||||
addSound(step, SoundType.STEP);
|
addSound(step, SoundType.STEP);
|
||||||
addSound(death, SoundType.DEATH);
|
addSound(death, SoundType.DEATH);
|
||||||
addSound(idle, SoundType.IDLE);
|
addSound(idle, SoundType.IDLE);
|
||||||
|
|
||||||
for (Sound obj : sounds) {
|
for (Object obj : sounds) {
|
||||||
addSound(obj, SoundType.CANCEL);
|
addSound(obj, SoundType.CANCEL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Sound parseSound(String name) {
|
||||||
|
try {
|
||||||
|
return Sound.valueOf(name);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private void addSound(Object sound, SoundType type) {
|
private void addSound(Object sound, SoundType type) {
|
||||||
if (sound == null) {
|
if (sound == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sound instanceof Sound) {
|
if (sound instanceof String[]) {
|
||||||
addSound((Sound) sound, type);
|
for (String s : (String[]) sound) {
|
||||||
|
Sound so = parseSound(s);
|
||||||
|
|
||||||
|
if (so == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
addSound(so, type);
|
||||||
|
}
|
||||||
|
} else if (sound instanceof String) {
|
||||||
|
Sound so = parseSound((String) sound);
|
||||||
|
|
||||||
|
if (so == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
addSound(so, type);
|
||||||
} else if (sound instanceof Sound[]) {
|
} else if (sound instanceof Sound[]) {
|
||||||
for (Sound s : (Sound[]) sound) {
|
for (Sound s : (Sound[]) sound) {
|
||||||
|
if (s == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
addSound(s, type);
|
addSound(s, type);
|
||||||
}
|
}
|
||||||
|
} else if (sound instanceof Sound) {
|
||||||
|
addSound((Sound) sound, type);
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Was given an unknown object " + sound);
|
throw new IllegalArgumentException("Was given an unknown object " + sound);
|
||||||
}
|
}
|
||||||
@ -290,6 +322,10 @@ public enum DisguiseSound {
|
|||||||
return damageSoundVolume;
|
return damageSoundVolume;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDamageAndIdleSoundVolume(float strength) {
|
||||||
|
this.damageSoundVolume = strength;
|
||||||
|
}
|
||||||
|
|
||||||
public Object getSound(SoundType type) {
|
public Object getSound(SoundType type) {
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
return null;
|
return null;
|
||||||
@ -334,8 +370,4 @@ public enum DisguiseSound {
|
|||||||
public boolean isCancelSound(String sound) {
|
public boolean isCancelSound(String sound) {
|
||||||
return getSound(sound) == SoundType.CANCEL;
|
return getSound(sound) == SoundType.CANCEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDamageAndIdleSoundVolume(float strength) {
|
|
||||||
this.damageSoundVolume = strength;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import me.libraryaddict.disguise.utilities.packets.IPacketHandler;
|
|||||||
import me.libraryaddict.disguise.utilities.packets.LibsPackets;
|
import me.libraryaddict.disguise.utilities.packets.LibsPackets;
|
||||||
import me.libraryaddict.disguise.utilities.packets.PacketsHandler;
|
import me.libraryaddict.disguise.utilities.packets.PacketsHandler;
|
||||||
import me.libraryaddict.disguise.utilities.reflection.DisguiseValues;
|
import me.libraryaddict.disguise.utilities.reflection.DisguiseValues;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
|
||||||
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||||
import org.bukkit.Art;
|
import org.bukkit.Art;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -224,11 +225,15 @@ public class PacketHandlerSpawn implements IPacketHandler {
|
|||||||
|
|
||||||
packets.addPacket(spawnPlayer);
|
packets.addPacket(spawnPlayer);
|
||||||
|
|
||||||
PacketContainer metaPacket = ProtocolLibrary.getProtocolManager()
|
if (ReflectionManager.isSupported(NmsVersion.v1_15)) {
|
||||||
.createPacketConstructor(PacketType.Play.Server.ENTITY_METADATA, entityId, newWatcher, true)
|
PacketContainer metaPacket = ProtocolLibrary.getProtocolManager()
|
||||||
.createPacket(entityId, newWatcher, true);
|
.createPacketConstructor(PacketType.Play.Server.ENTITY_METADATA, entityId, newWatcher, true)
|
||||||
|
.createPacket(entityId, newWatcher, true);
|
||||||
|
|
||||||
packets.addPacket(metaPacket);
|
packets.addPacket(metaPacket);
|
||||||
|
} else {
|
||||||
|
spawnPlayer.getDataWatcherModifier().write(0, newWatcher);
|
||||||
|
}
|
||||||
|
|
||||||
if (!selfDisguise) {
|
if (!selfDisguise) {
|
||||||
// Teleport the player back to where he's supposed to be
|
// Teleport the player back to where he's supposed to be
|
||||||
@ -248,7 +253,7 @@ public class PacketHandlerSpawn implements IPacketHandler {
|
|||||||
packets.addDelayedPacket(teleportPacket, 3);
|
packets.addDelayedPacket(teleportPacket, 3);
|
||||||
|
|
||||||
// Send a metadata packet
|
// Send a metadata packet
|
||||||
metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA);
|
PacketContainer metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA);
|
||||||
|
|
||||||
newWatcher = DisguiseUtilities
|
newWatcher = DisguiseUtilities
|
||||||
.createSanitizedDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity),
|
.createSanitizedDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity),
|
||||||
@ -309,11 +314,15 @@ public class PacketHandlerSpawn implements IPacketHandler {
|
|||||||
.createSanitizedDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity),
|
.createSanitizedDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity),
|
||||||
disguise.getWatcher());
|
disguise.getWatcher());
|
||||||
|
|
||||||
PacketContainer metaPacket = ProtocolLibrary.getProtocolManager()
|
if (ReflectionManager.isSupported(NmsVersion.v1_15)) {
|
||||||
.createPacketConstructor(PacketType.Play.Server.ENTITY_METADATA, disguisedEntity.getEntityId(),
|
PacketContainer metaPacket = ProtocolLibrary.getProtocolManager()
|
||||||
newWatcher, true).createPacket(disguisedEntity.getEntityId(), newWatcher, true);
|
.createPacketConstructor(PacketType.Play.Server.ENTITY_METADATA, disguisedEntity.getEntityId(),
|
||||||
|
newWatcher, true).createPacket(disguisedEntity.getEntityId(), newWatcher, true);
|
||||||
|
|
||||||
packets.addPacket(metaPacket);
|
packets.addPacket(metaPacket);
|
||||||
|
} else {
|
||||||
|
spawnEntity.getDataWatcherModifier().write(0, newWatcher);
|
||||||
|
}
|
||||||
} else if (disguise.getType().isMisc()) {
|
} else if (disguise.getType().isMisc()) {
|
||||||
int data = ((MiscDisguise) disguise).getData();
|
int data = ((MiscDisguise) disguise).getData();
|
||||||
double x = loc.getX();
|
double x = loc.getX();
|
||||||
|
@ -37,6 +37,10 @@ public class DisguiseParser {
|
|||||||
public static void createDefaultMethods() {
|
public static void createDefaultMethods() {
|
||||||
try {
|
try {
|
||||||
for (DisguiseType type : DisguiseType.values()) {
|
for (DisguiseType type : DisguiseType.values()) {
|
||||||
|
if (type.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
Disguise disguise;
|
Disguise disguise;
|
||||||
|
|
||||||
if (type.isMisc()) {
|
if (type.isMisc()) {
|
||||||
@ -284,19 +288,21 @@ public class DisguiseParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static DisguisePerm[] getDisguisePerms() {
|
public static DisguisePerm[] getDisguisePerms() {
|
||||||
DisguisePerm[] perms = new DisguisePerm[DisguiseType.values().length +
|
ArrayList<DisguisePerm> perms = new ArrayList<>();
|
||||||
DisguiseConfig.getCustomDisguises().size()];
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
for (DisguiseType disguiseType : DisguiseType.values()) {
|
for (DisguiseType disguiseType : DisguiseType.values()) {
|
||||||
perms[i++] = new DisguisePerm(disguiseType);
|
if (disguiseType.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
perms.add(new DisguisePerm(disguiseType));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Entry<DisguisePerm, String> entry : DisguiseConfig.getCustomDisguises().entrySet()) {
|
for (Entry<DisguisePerm, String> entry : DisguiseConfig.getCustomDisguises().entrySet()) {
|
||||||
perms[i++] = entry.getKey();
|
perms.add(entry.getKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
return perms;
|
return perms.toArray(new DisguisePerm[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,6 +9,7 @@ import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
|
|||||||
import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
||||||
import me.libraryaddict.disguise.utilities.parser.params.ParamInfo;
|
import me.libraryaddict.disguise.utilities.parser.params.ParamInfo;
|
||||||
import me.libraryaddict.disguise.utilities.parser.params.ParamInfoTypes;
|
import me.libraryaddict.disguise.utilities.parser.params.ParamInfoTypes;
|
||||||
|
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@ -90,7 +91,9 @@ public class ParamInfoManager {
|
|||||||
while (itel.hasNext()) {
|
while (itel.hasNext()) {
|
||||||
Method method = itel.next();
|
Method method = itel.next();
|
||||||
|
|
||||||
if (method.getParameterTypes().length != 1) {
|
if (!ReflectionManager.isSupported(method)) {
|
||||||
|
itel.remove();
|
||||||
|
} else if (method.getParameterTypes().length != 1) {
|
||||||
itel.remove();
|
itel.remove();
|
||||||
} else if (method.getName().startsWith("get")) {
|
} else if (method.getName().startsWith("get")) {
|
||||||
itel.remove();
|
itel.remove();
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package me.libraryaddict.disguise.utilities.reflection;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by libraryaddict on 6/02/2020.
|
||||||
|
*/
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface NmsAdded {
|
||||||
|
NmsVersion added();
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package me.libraryaddict.disguise.utilities.reflection;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by libraryaddict on 6/02/2020.
|
||||||
|
*/
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface NmsRemoved {
|
||||||
|
NmsVersion removed();
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package me.libraryaddict.disguise.utilities.reflection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by libraryaddict on 6/02/2020.
|
||||||
|
*/
|
||||||
|
public enum NmsVersion {
|
||||||
|
v1_14,
|
||||||
|
v1_15;
|
||||||
|
}
|
@ -5,6 +5,7 @@ import com.comphenix.protocol.wrappers.*;
|
|||||||
import com.comphenix.protocol.wrappers.EnumWrappers.Direction;
|
import com.comphenix.protocol.wrappers.EnumWrappers.Direction;
|
||||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher.WrappedDataWatcherObject;
|
import com.comphenix.protocol.wrappers.WrappedDataWatcher.WrappedDataWatcherObject;
|
||||||
import com.comphenix.protocol.wrappers.nbt.NbtWrapper;
|
import com.comphenix.protocol.wrappers.nbt.NbtWrapper;
|
||||||
|
import lombok.Getter;
|
||||||
import me.libraryaddict.disguise.DisguiseConfig;
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
import me.libraryaddict.disguise.LibsDisguises;
|
import me.libraryaddict.disguise.LibsDisguises;
|
||||||
import me.libraryaddict.disguise.disguisetypes.*;
|
import me.libraryaddict.disguise.disguisetypes.*;
|
||||||
@ -47,6 +48,12 @@ public class ReflectionManager {
|
|||||||
private static Field chunkProviderField;
|
private static Field chunkProviderField;
|
||||||
private static Field entityTrackerField;
|
private static Field entityTrackerField;
|
||||||
private static Field trackedEntitiesField;
|
private static Field trackedEntitiesField;
|
||||||
|
@Getter
|
||||||
|
private static NmsVersion version;
|
||||||
|
|
||||||
|
public static boolean isSupported(NmsVersion version) {
|
||||||
|
return getVersion().ordinal() >= version.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
try {
|
try {
|
||||||
@ -96,6 +103,52 @@ public class ReflectionManager {
|
|||||||
entityCountField.setAccessible(true);
|
entityCountField.setAccessible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isSupported(AccessibleObject obj) {
|
||||||
|
if (obj.isAnnotationPresent(NmsAdded.class)) {
|
||||||
|
NmsAdded added = obj.getAnnotation(NmsAdded.class);
|
||||||
|
|
||||||
|
// If it was added after/on this version
|
||||||
|
if (!isSupported(added.added())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.isAnnotationPresent(NmsRemoved.class)) {
|
||||||
|
NmsRemoved removed = obj.getAnnotation(NmsRemoved.class);
|
||||||
|
|
||||||
|
if (isSupported(removed.removed())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSupported(Class cl, String name) {
|
||||||
|
try {
|
||||||
|
for (Field field : cl.getFields()) {
|
||||||
|
if (!field.getName().equals(name)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isSupported(field);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Method method : cl.getMethods()) {
|
||||||
|
if (!method.getName().equals(name)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isSupported(method);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static YamlConfiguration getPluginYaml(ClassLoader loader) {
|
public static YamlConfiguration getPluginYaml(ClassLoader loader) {
|
||||||
try (InputStream stream = loader.getResourceAsStream("plugin.yml")) {
|
try (InputStream stream = loader.getResourceAsStream("plugin.yml")) {
|
||||||
YamlConfiguration config = new YamlConfiguration();
|
YamlConfiguration config = new YamlConfiguration();
|
||||||
@ -286,6 +339,15 @@ public class ReflectionManager {
|
|||||||
public static String getBukkitVersion() {
|
public static String getBukkitVersion() {
|
||||||
if (bukkitVersion == null) {
|
if (bukkitVersion == null) {
|
||||||
bukkitVersion = Bukkit.getServer().getClass().getName().split("\\.")[3];
|
bukkitVersion = Bukkit.getServer().getClass().getName().split("\\.")[3];
|
||||||
|
|
||||||
|
for (NmsVersion v : NmsVersion.values()) {
|
||||||
|
if (!getBukkitVersion().startsWith(v.name())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
version = v;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bukkitVersion;
|
return bukkitVersion;
|
||||||
|
@ -17,7 +17,8 @@ public class TranslateFiller {
|
|||||||
// Fill the configs
|
// Fill the configs
|
||||||
|
|
||||||
for (ParamInfo info : ParamInfoManager.getParamInfos()) {
|
for (ParamInfo info : ParamInfoManager.getParamInfos()) {
|
||||||
TranslateType.DISGUISE_OPTIONS_PARAMETERS.save(info.getRawName(), "A disguise option name, has description " + info.getDescription());
|
TranslateType.DISGUISE_OPTIONS_PARAMETERS
|
||||||
|
.save(info.getRawName(), "A disguise option name, has description " + info.getDescription());
|
||||||
|
|
||||||
if (!info.getRawName().equals(info.getRawDescriptiveName())) {
|
if (!info.getRawName().equals(info.getRawDescriptiveName())) {
|
||||||
TranslateType.DISGUISE_OPTIONS_PARAMETERS
|
TranslateType.DISGUISE_OPTIONS_PARAMETERS
|
||||||
@ -51,6 +52,10 @@ public class TranslateFiller {
|
|||||||
|
|
||||||
TranslateType.DISGUISES.save(StringUtils.join(split, " "), "Name for the " + type.name() + " disguise");
|
TranslateType.DISGUISES.save(StringUtils.join(split, " "), "Name for the " + type.name() + " disguise");
|
||||||
|
|
||||||
|
if (type.getEntityType() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (Method method : ParamInfoManager.getDisguiseWatcherMethods(type.getWatcherClass())) {
|
for (Method method : ParamInfoManager.getDisguiseWatcherMethods(type.getWatcherClass())) {
|
||||||
Class para = method.getParameterTypes()[0];
|
Class para = method.getParameterTypes()[0];
|
||||||
String className = method.getDeclaringClass().getSimpleName().replace("Watcher", "");
|
String className = method.getDeclaringClass().getSimpleName().replace("Watcher", "");
|
||||||
|
Loading…
Reference in New Issue
Block a user