This commit is contained in:
Maxlego08 2020-08-01 10:09:00 +02:00
parent a6eaac322a
commit b62223453e
5 changed files with 96 additions and 61 deletions

View File

@ -1,6 +1,6 @@
name: zKoth name: zKoth
author: Maxlego08 author: Maxlego08
main: fr.maxlego08.koth.ZKoth main: fr.maxlego08.koth.ZKoth
version: 1.0.1.1 version: 1.0.1.2
softdepend: [PlaceholderAPI, Guilds] softdepend: [PlaceholderAPI, Guilds]
commands: commands:

View File

@ -168,6 +168,16 @@ public class Koth extends ZUtils {
return; return;
} }
if (pos1.getWorld() == null){
message(sender, Message.KOTH_SET_FIRST_POSITION_WORLD_NULL, name);
return;
}
if (pos2.getWorld() == null){
message(sender, Message.KOTH_SET_SECOND_POSITION_WORLD_NULL, name);
return;
}
if (isCooldown) { if (isCooldown) {
message(sender, Message.KOTH_SPAWN_COOLDOWN); message(sender, Message.KOTH_SPAWN_COOLDOWN);
return; return;
@ -181,6 +191,11 @@ public class Koth extends ZUtils {
if (cuboid == null) if (cuboid == null)
buildCuboid(); buildCuboid();
if (cuboid == null){
message(sender, Message.KOTH_SPAWN_ERROR);
return;
}
if (now) if (now)
spawnNow(sender); spawnNow(sender);
else else

View File

@ -240,6 +240,12 @@ public class KothManager extends ListenerAdapter implements Saveable {
} }
/**
*
* @param sender
* @param name
* @param now
*/
public void spawn(CommandSender sender, String name, boolean now) { public void spawn(CommandSender sender, String name, boolean now) {
if (!exist(name)) { if (!exist(name)) {

View File

@ -39,9 +39,12 @@ public enum Message {
KOTH_SET_FIRST_POSITION("§eYou just put the first position for the koth §6%s§e."), KOTH_SET_FIRST_POSITION("§eYou just put the first position for the koth §6%s§e."),
KOTH_SET_SECOND_POSITION("§eYou just put the second position for the koth §6%s§e."), KOTH_SET_SECOND_POSITION("§eYou just put the second position for the koth §6%s§e."),
KOTH_SET_FIRST_POSITION_NULL("§cThe first location cannot be found, made §f/koth set pos1 %s§c."), KOTH_SET_FIRST_POSITION_NULL("§cThe first location cannot be found, made §f/koth set pos1 %s§c."),
KOTH_SET_FIRST_POSITION_WORLD_NULL("§cThe world of the first location is untraceable, impossible to spawn the koth."),
KOTH_SET_SECOND_POSITION_NULL("§cThe second location cannot be found, made §f/koth set pos2 %s§c."), KOTH_SET_SECOND_POSITION_NULL("§cThe second location cannot be found, made §f/koth set pos2 %s§c."),
KOTH_SET_SECOND_POSITION_WORLD_NULL("§cThe world of the second location is untraceable, impossible to spawn the koth."),
KOTH_SPAWN_COOLDOWN("§cthe countdown to the appearance of the koth is already underway"), KOTH_SPAWN_COOLDOWN("§cthe countdown to the appearance of the koth is already underway"),
KOTH_SPAWN_ALREADY("§cThe koth is running."), KOTH_SPAWN_ALREADY("§cThe koth is running."),
KOTH_SPAWN_ERROR("§cImpossible to spawn the koth, the cuboid can't be created."),
KOTH_STOP("§ekoth §f%name% §ehas just been stopped."), KOTH_STOP("§ekoth §f%name% §ehas just been stopped."),
KOTH_SPAWN_MESSAGE_COOLDOWN("§eKoth §6%name% §ewill appear in §6%cooldown% §8(§7%centerX%, %centerY%, %centerZ%§8)"), KOTH_SPAWN_MESSAGE_COOLDOWN("§eKoth §6%name% §ewill appear in §6%cooldown% §8(§7%centerX%, %centerY%, %centerZ%§8)"),
KOTH_SPAWN_MESSAGE("§eKoth §6%name% §eappeared in §6%centerX%, %centerY%, %centerZ%§e."), KOTH_SPAWN_MESSAGE("§eKoth §6%name% §eappeared in §6%centerX%, %centerY%, %centerZ%§e."),

View File

@ -8,82 +8,93 @@ import java.util.TimerTask;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
public class ActionBar { public class ActionBar {
private static String nmsver; private static String nmsver;
private static boolean useOldMethods = false; private static boolean useOldMethods = false;
private static double nmsVersion = ItemDecoder.getNMSVersion();
public static void sendActionBar(Player player, String message) { public static void sendActionBar(Player player, String message) {
if (!player.isOnline())
return;
nmsver = Bukkit.getServer().getClass().getPackage().getName(); nmsver = Bukkit.getServer().getClass().getPackage().getName();
nmsver = nmsver.substring(nmsver.lastIndexOf(".") + 1); nmsver = nmsver.substring(nmsver.lastIndexOf(".") + 1);
if (nmsver.equalsIgnoreCase("v1_8_R1") || nmsver.startsWith("v1_7_")) { if (nmsver.equalsIgnoreCase("v1_8_R1") || nmsver.startsWith("v1_7_")) {
useOldMethods = true; useOldMethods = true;
} }
if (player.isOnline()) { // Use new methodes
new Timer().schedule(new TimerTask() { if (nmsVersion != 1.7 && nmsVersion != 1.8 && nmsVersion != 1.9) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(message));
return;
}
@Override new Timer().schedule(new TimerTask() {
public void run() {
try { @Override
Class<?> var2 = Class.forName("org.bukkit.craftbukkit." + nmsver + ".entity.CraftPlayer"); public void run() {
Object var3 = var2.cast(player); try {
Class<?> var4 = Class.forName("net.minecraft.server." + nmsver + ".PacketPlayOutChat"); Class<?> var2 = Class.forName("org.bukkit.craftbukkit." + nmsver + ".entity.CraftPlayer");
Class<?> var5 = Class.forName("net.minecraft.server." + nmsver + ".Packet"); Object var3 = var2.cast(player);
Object var6; Class<?> var4 = Class.forName("net.minecraft.server." + nmsver + ".PacketPlayOutChat");
Class<?> var7; Class<?> var5 = Class.forName("net.minecraft.server." + nmsver + ".Packet");
Class<?> var8; Object var6;
Object message0; Class<?> var7;
if (useOldMethods) { Class<?> var8;
var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatSerializer"); Object message0;
var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent"); if (useOldMethods) {
Method var20 = var7.getDeclaredMethod("a", new Class[] { String.class }); var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatSerializer");
message0 = var8 var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent");
.cast(var20.invoke(var7, new Object[] { "{\"text\": \"" + message + "\"}" })); Method var20 = var7.getDeclaredMethod("a", new Class[] { String.class });
message0 = var8.cast(var20.invoke(var7, new Object[] { "{\"text\": \"" + message + "\"}" }));
var6 = var4.getConstructor(new Class[] { var8, Byte.TYPE })
.newInstance(new Object[] { message0, Byte.valueOf((byte) 2) });
} else {
var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatComponentText");
var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent");
try {
Class<?> var9 = Class.forName("net.minecraft.server." + nmsver + ".ChatMessageType");
Object[] var22 = var9.getEnumConstants();
Object message1 = null;
Object[] message2 = var22;
int message3 = var22.length;
for (int message4 = 0; message4 < message3; ++message4) {
Object message5 = message2[message4];
if (message5.toString().equals("GAME_INFO")) {
message1 = message5;
}
}
Object var24 = var7.getConstructor(new Class[] { String.class })
.newInstance(new Object[] { message });
var6 = var4.getConstructor(new Class[] { var8, var9 })
.newInstance(new Object[] { var24, message1 });
} catch (ClassNotFoundException message6) {
message0 = var7.getConstructor(new Class[] { String.class })
.newInstance(new Object[] { message });
var6 = var4.getConstructor(new Class[] { var8, Byte.TYPE }) var6 = var4.getConstructor(new Class[] { var8, Byte.TYPE })
.newInstance(new Object[] { message0, Byte.valueOf((byte) 2) }); .newInstance(new Object[] { message0, Byte.valueOf((byte) 2) });
} else {
var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatComponentText");
var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent");
try {
Class<?> var9 = Class.forName("net.minecraft.server." + nmsver + ".ChatMessageType");
Object[] var22 = var9.getEnumConstants();
Object message1 = null;
Object[] message2 = var22;
int message3 = var22.length;
for (int message4 = 0; message4 < message3; ++message4) {
Object message5 = message2[message4];
if (message5.toString().equals("GAME_INFO")) {
message1 = message5;
}
}
Object var24 = var7.getConstructor(new Class[] { String.class })
.newInstance(new Object[] { message });
var6 = var4.getConstructor(new Class[] { var8, var9 })
.newInstance(new Object[] { var24, message1 });
} catch (ClassNotFoundException message6) {
message0 = var7.getConstructor(new Class[] { String.class })
.newInstance(new Object[] { message });
var6 = var4.getConstructor(new Class[] { var8, Byte.TYPE })
.newInstance(new Object[] { message0, Byte.valueOf((byte) 2) });
}
} }
Method message8 = var2.getDeclaredMethod("getHandle", new Class[0]);
Object message9 = message8.invoke(var3, new Object[0]);
Field var21 = message9.getClass().getDeclaredField("playerConnection");
message0 = var21.get(message9);
Method var23 = message0.getClass().getDeclaredMethod("sendPacket", new Class[] { var5 });
var23.invoke(message0, new Object[] { var6 });
} catch (Exception message7) {
message7.printStackTrace();
} }
}
}, 1);
} Method message8 = var2.getDeclaredMethod("getHandle", new Class[0]);
Object message9 = message8.invoke(var3, new Object[0]);
Field var21 = message9.getClass().getDeclaredField("playerConnection");
message0 = var21.get(message9);
Method var23 = message0.getClass().getDeclaredMethod("sendPacket", new Class[] { var5 });
var23.invoke(message0, new Object[] { var6 });
} catch (Exception message7) {
message7.printStackTrace();
}
}
}, 1);
} }
public static void sendActionBar(Player player, String message, int sec) { public static void sendActionBar(Player player, String message, int sec) {
@ -97,7 +108,7 @@ public class ActionBar {
sendActionBar(player, message); sendActionBar(player, message);
currentSec--; currentSec--;
} }
}, 1000, 1000); }, 0, 1000);
} }
public static void broadcastActionMessage(String paramString) { public static void broadcastActionMessage(String paramString) {