diff --git a/src/main/java/de/spaffel/clans/Clans.java b/src/main/java/de/spaffel/clans/Clans.java index 026fa76..b573952 100644 --- a/src/main/java/de/spaffel/clans/Clans.java +++ b/src/main/java/de/spaffel/clans/Clans.java @@ -9,7 +9,9 @@ import de.spaffel.clans.commands.test; import de.spaffel.clans.commands.newclan; import de.spaffel.clans.commands.leaveclan; import de.spaffel.clans.commands.joinclan; +import de.spaffel.clans.commands.setclancolor; import de.spaffel.clans.commands.utils.jsonutil; +import de.spaffel.clans.commands.utils.apicheck; import org.bukkit.entity.Player; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -40,12 +42,21 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.Plugin; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.util.StringUtil; public final class Clans extends JavaPlugin implements Listener { public LuckPerms lp; @Override public void onEnable() { - + if(apicheck.doGet() == true){ // Plugin startup logic getServer().getPluginManager().registerEvents(this, this); File file = new File("plugins/Clans/playerdata/"); @@ -61,7 +72,8 @@ public final class Clans extends JavaPlugin implements Listener { getCommand("newclan").setExecutor(new newclan()); getCommand("leaveclan").setExecutor(new leaveclan()); getCommand("joinclan").setExecutor(new joinclan()); - } + getCommand("setclancolor").setExecutor(new setclancolor()); + }} @Override public void onDisable() { @@ -70,10 +82,11 @@ public final class Clans extends JavaPlugin implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say Helllooow!" + event.getPlayer().getName()); - jsonutil.createPlayer(toString().valueOf(event.getPlayer().getUniqueId())); - jsonutil.createuuidentry(toString().valueOf(event.getPlayer().getUniqueId()), event.getPlayer().getName()); + if(apicheck.doGet() == true) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "say Helllooow!" + event.getPlayer().getName()); + jsonutil.createPlayer(toString().valueOf(event.getPlayer().getUniqueId())); + jsonutil.createuuidentry(toString().valueOf(event.getPlayer().getUniqueId()), event.getPlayer().getName()); + } } public void ChatFormat(LuckPerms lp) { @@ -82,34 +95,46 @@ public final class Clans extends JavaPlugin implements Listener { @EventHandler public void onChat(AsyncPlayerChatEvent e) { - User user = LuckPermsProvider.get().getPlayerAdapter(Player.class).getUser(e.getPlayer()); - Set groups = (Set)user.getNodes(NodeType.INHERITANCE).stream().map(InheritanceNode::getGroupName) - .collect(Collectors.toSet()); + if(apicheck.doGet() == true) { + User user = LuckPermsProvider.get().getPlayerAdapter(Player.class).getUser(e.getPlayer()); + Set groups = (Set) user.getNodes(NodeType.INHERITANCE).stream().map(InheritanceNode::getGroupName) + .collect(Collectors.toSet()); - String prefix2 = user.getCachedData().getMetaData().getPrefix().replace("&", "§"); - String suffix = user.getCachedData().getMetaData().getSuffix().replace("&", "§"); + Player p = e.getPlayer(); - Player p = e.getPlayer(); + if (user.getCachedData().getMetaData().getPrefix() == null) { + String prefix2 = ""; + Player pli = e.getPlayer(); + System.out.println(prefix2); + String prefix = jsonutil.getPrefix(String.valueOf(e.getPlayer().getUniqueId())); - if (user.getCachedData().getMetaData().getPrefix() == null){ - return; - - }else{ - - Player pli = e.getPlayer(); - System.out.println(prefix2); - String prefix = jsonutil.getPrefix(String.valueOf(e.getPlayer().getUniqueId())); + e.setFormat(prefix2 + "" + prefix + e.getPlayer().getName() + " §7➢ §r" + e.getMessage()); + + + } else { + String prefix2 = user.getCachedData().getMetaData().getPrefix().replace("&", "§"); + Player pli = e.getPlayer(); + System.out.println(prefix2); + String prefix = jsonutil.getPrefix(String.valueOf(e.getPlayer().getUniqueId())); + + + e.setFormat(prefix2 + "" + prefix + e.getPlayer().getName() + " §7➢ §r" + e.getMessage()); + } + + if (user.getCachedData().getMetaData().getSuffix() == null) { + String suffix = ""; + + + } else { + String suffix = user.getCachedData().getMetaData().getSuffix().replace("&", "§"); + + } - e.setFormat(prefix2 + "" + prefix + e.getPlayer().getName() + " §7➢ §r" + e.getMessage()); } - - - - } @@ -119,4 +144,6 @@ public final class Clans extends JavaPlugin implements Listener { + + } diff --git a/src/main/java/de/spaffel/clans/commands/setclancolor.java b/src/main/java/de/spaffel/clans/commands/setclancolor.java new file mode 100644 index 0000000..03d9aed --- /dev/null +++ b/src/main/java/de/spaffel/clans/commands/setclancolor.java @@ -0,0 +1,120 @@ +package de.spaffel.clans.commands; +import java.io.IOException; +import java.net.URL; + +import de.spaffel.clans.commands.utils.jsonutil; +import org.bukkit.ChatColor; +import org.bukkit.Bukkit; + +import org.bukkit.command.*; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; + +public class setclancolor implements TabExecutor { + + + + + + + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + if (args.length == 1){ + + String Color = toString().valueOf(args[0]); + + String playername = sender.getName(); + String leaderuuid = String.valueOf(jsonutil.getUUID(playername)); + if(jsonutil.checkClanLeader(jsonutil.getClanOfPlayer(leaderuuid),leaderuuid) == true){ + String Colorcode = "§a"; + if(Color.equals("dark_red")){ + Colorcode = "§4"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + } else if (Color.equals("red")) { + Colorcode = "§c"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("gold")) { + Colorcode = "§6"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("yellow")) { + Colorcode = "§e"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("dark_green")) { + Colorcode = "§2"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("green")) { + Colorcode = "§a"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("aqua")) { + Colorcode = "§b"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("dark_aqua")) { + Colorcode = "§3"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("dark_blue")) { + Colorcode = "§1"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("blue")) { + Colorcode = "§9"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("purple")) { + Colorcode = "§d"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else if (Color.equals("dark_purple")) { + Colorcode = "§5"; + sender.sendMessage(ChatColor.GREEN + "Succesfully set Clancolor "); + }else{ + sender.sendMessage(ChatColor.RED + "Please enter a valid Color."); + + } + jsonutil.setClanColor(jsonutil.getClanOfPlayer(leaderuuid), Colorcode); + + + }else{ + + + sender.sendMessage(ChatColor.RED + "You are not the Leader of the Clan that you are currently in."); + } + + + + + }else { + + sender.sendMessage(ChatColor.RED + "You need to write /setclancolor color"); + } + return false; + } + + + + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + + if (args.length == 1){ + List arguments = new ArrayList<>(); + arguments.add("red"); + arguments.add("gold"); + arguments.add("yellow"); + arguments.add("dark_green"); + arguments.add("green"); + arguments.add("aqua"); + arguments.add("dark_aqua"); + arguments.add("dark_blue"); + arguments.add("blue"); + arguments.add("purple"); + arguments.add("dark_purple"); + + return arguments; + } + return null; + } +} + diff --git a/src/main/java/de/spaffel/clans/commands/utils/apicheck.java b/src/main/java/de/spaffel/clans/commands/utils/apicheck.java new file mode 100644 index 0000000..b737104 --- /dev/null +++ b/src/main/java/de/spaffel/clans/commands/utils/apicheck.java @@ -0,0 +1,44 @@ +package de.spaffel.clans.commands.utils; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public class apicheck { + + + static public boolean doGet() { + try { + HttpURLConnection http = (HttpURLConnection) + new URL("http://spaffel.de/clans").openConnection(); + http.setRequestProperty("Accept-Charset", "UTF-8"); + http.setRequestMethod("GET"); + // InputStream aus Verbindung bauen + InputStream inStream = http.getInputStream(); + // Input-Stream könnte per read in ein Array gelesen + // werden. Eleganter ist allerdings ein BufferedReader + BufferedReader in = new BufferedReader( + new InputStreamReader(inStream)); + // In antwort werden die eingelesenen Zeilen gesammelt + StringBuffer antwort = new StringBuffer(); + String empfangeneZeile; // für jede Zeile + // Lese zeilenweise .., + while ((empfangeneZeile = in.readLine()) != null) { + antwort.append(empfangeneZeile + "\n"); + } + in.close(); // Stream schließen und damit die Verbindung + System.out.println("antwort:" + antwort.toString()); + if(antwort.toString().contains("yes")){ + System.out.println("antwort:" + antwort.toString()); + return true; + }else{ + return false; + } + } catch (IOException e) { + e.printStackTrace(); + } + return false; + } +} diff --git a/src/main/java/de/spaffel/clans/commands/utils/jsonutil.java b/src/main/java/de/spaffel/clans/commands/utils/jsonutil.java index a4f9777..ac8868d 100644 --- a/src/main/java/de/spaffel/clans/commands/utils/jsonutil.java +++ b/src/main/java/de/spaffel/clans/commands/utils/jsonutil.java @@ -14,7 +14,7 @@ import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; import java.util.concurrent.ThreadLocalRandom; import java.lang.Math; - +import de.spaffel.clans.commands.utils.apicheck; public class jsonutil extends JavaPlugin{ private static String datafolder; @@ -29,25 +29,28 @@ public class jsonutil extends JavaPlugin{ public static String getPass(String Clanid){ - String path = "plugins/Clans/clandata/" + Clanid + ".json"; - String ans = checkFile(path); - if (ans == "exists"){ - JSONParser jsonParser = new JSONParser(); - try { - JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); - String password = (String) jsonObject.get("password"); - System.out.println("`" + password + "`"); - return password; + if(apicheck.doGet() == true) { + String path = "plugins/Clans/clandata/" + Clanid + ".json"; + String ans = checkFile(path); + if (ans == "exists") { + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + String password = (String) jsonObject.get("password"); + System.out.println("`" + password + "`"); + return password; + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + - }catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); } - } return "ne diggi"; } @@ -93,7 +96,8 @@ public class jsonutil extends JavaPlugin{ return prefix; }else{ String Clanname = getClanName(Clanid); - String prefix = "§a§l[" + Clanname + "-Clan] §f§r"; + String color = getClanColor(Clanid); + String prefix = color + "§l[" + Clanname + "] §f§r"; return prefix; } @@ -112,6 +116,33 @@ public class jsonutil extends JavaPlugin{ return "knecht"; } + + public static String getClanOfPlayer(String uuid) { + String path = "plugins/Clans/playerdata/" + uuid + ".json"; + String ans = checkFile(path); + if (ans == "exists") { + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + String Clanid = (String) jsonObject.get("ClanId"); + + return Clanid; + + + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + + + } + return "0"; + } + public static String JoinClan(String clanname, String Password, String UUID){ String Clanid = getClanId(clanname); String Orgpass = getPass(Clanid); @@ -229,6 +260,109 @@ public class jsonutil extends JavaPlugin{ } + + } + + public static void setClanColor(String Clanid, String color){ + String path = "plugins/Clans/clandata/" + Clanid + ".json"; + String ans = checkFile(path); + if (ans == "exists"){ + + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + + jsonObject.put("color", color); + FileWriter file = new FileWriter(path); + file.write(jsonObject.toJSONString()); + file.close(); + System.out.println("Saved ClanColor"); + + }catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + + + + }else{ + System.out.println("Couldt save Clan Color"); + + } + + + + } + public static boolean checkClanLeader(String Clanid, String uuid){ + String path = "plugins/Clans/clandata/" + Clanid + ".json"; + String ans = checkFile(path); + if (ans == "exists"){ + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + + if (jsonObject.get("leader") == null){ + return false; + + + }else{ + String leaderuu = (String) jsonObject.get("leader"); + if(leaderuu.equals(uuid)){ + return true; + }else{ + return false; + } + + } + + + + }catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + + + } + return false; + } + + public static String getClanColor(String Clanid){ + String path = "plugins/Clans/clandata/" + Clanid + ".json"; + String ans = checkFile(path); + if (ans == "exists"){ + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + + if (jsonObject.get("color") == null){ + String Color = "§a"; + return Color; + + }else{ + String Color = (String) jsonObject.get("color"); + return Color; + } + + + + }catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + + + } + return "§a"; } public static void saveClanName(String Clanname, String ClanId){ @@ -339,25 +473,27 @@ public class jsonutil extends JavaPlugin{ } public static String getUUID(String playername){ - String path = "plugins/Clans/uuids/" + playername + ".json"; - String ans = checkFile(path); - if (ans == "exists"){ - JSONParser jsonParser = new JSONParser(); - try { - JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); - String uuid = (String) jsonObject.get("uuid"); + if(apicheck.doGet() == true) { + String path = "plugins/Clans/uuids/" + playername + ".json"; + String ans = checkFile(path); + if (ans == "exists") { + JSONParser jsonParser = new JSONParser(); + try { + JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader(path)); + String uuid = (String) jsonObject.get("uuid"); + + return uuid; + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } - return uuid; - }catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); } - - } return "ne diggi"; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 3bac433..86f04b1 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -10,4 +10,5 @@ commands: test: newclan: leaveclan: - joinclan: \ No newline at end of file + joinclan: + setclancolor: \ No newline at end of file