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
author: Maxlego08
main: fr.maxlego08.koth.ZKoth
version: 1.0.1.1
version: 1.0.1.2
softdepend: [PlaceholderAPI, Guilds]
commands:

View File

@ -168,6 +168,16 @@ public class Koth extends ZUtils {
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) {
message(sender, Message.KOTH_SPAWN_COOLDOWN);
return;
@ -181,6 +191,11 @@ public class Koth extends ZUtils {
if (cuboid == null)
buildCuboid();
if (cuboid == null){
message(sender, Message.KOTH_SPAWN_ERROR);
return;
}
if (now)
spawnNow(sender);
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) {
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_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_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_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_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_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."),

View File

@ -8,82 +8,93 @@ import java.util.TimerTask;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
public class ActionBar {
private static String nmsver;
private static boolean useOldMethods = false;
private static double nmsVersion = ItemDecoder.getNMSVersion();
public static void sendActionBar(Player player, String message) {
if (!player.isOnline())
return;
nmsver = Bukkit.getServer().getClass().getPackage().getName();
nmsver = nmsver.substring(nmsver.lastIndexOf(".") + 1);
if (nmsver.equalsIgnoreCase("v1_8_R1") || nmsver.startsWith("v1_7_")) {
useOldMethods = true;
}
if (player.isOnline()) {
new Timer().schedule(new TimerTask() {
// Use new methodes
if (nmsVersion != 1.7 && nmsVersion != 1.8 && nmsVersion != 1.9) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(message));
return;
}
@Override
public void run() {
try {
Class<?> var2 = Class.forName("org.bukkit.craftbukkit." + nmsver + ".entity.CraftPlayer");
Object var3 = var2.cast(player);
Class<?> var4 = Class.forName("net.minecraft.server." + nmsver + ".PacketPlayOutChat");
Class<?> var5 = Class.forName("net.minecraft.server." + nmsver + ".Packet");
Object var6;
Class<?> var7;
Class<?> var8;
Object message0;
if (useOldMethods) {
var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatSerializer");
var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent");
Method var20 = var7.getDeclaredMethod("a", new Class[] { String.class });
message0 = var8
.cast(var20.invoke(var7, new Object[] { "{\"text\": \"" + message + "\"}" }));
new Timer().schedule(new TimerTask() {
@Override
public void run() {
try {
Class<?> var2 = Class.forName("org.bukkit.craftbukkit." + nmsver + ".entity.CraftPlayer");
Object var3 = var2.cast(player);
Class<?> var4 = Class.forName("net.minecraft.server." + nmsver + ".PacketPlayOutChat");
Class<?> var5 = Class.forName("net.minecraft.server." + nmsver + ".Packet");
Object var6;
Class<?> var7;
Class<?> var8;
Object message0;
if (useOldMethods) {
var7 = Class.forName("net.minecraft.server." + nmsver + ".ChatSerializer");
var8 = Class.forName("net.minecraft.server." + nmsver + ".IChatBaseComponent");
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 })
.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) {
@ -97,7 +108,7 @@ public class ActionBar {
sendActionBar(player, message);
currentSec--;
}
}, 1000, 1000);
}, 0, 1000);
}
public static void broadcastActionMessage(String paramString) {