Guest User

SignCMD

a guest
Jul 29th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. package de.flavius.signieren.commands;
  2.  
  3. import java.io.File;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Calendar;
  7. import java.util.List;
  8. import net.md_5.bungee.api.ChatColor;
  9. import org.bukkit.Material;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandExecutor;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.configuration.file.YamlConfiguration;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.inventory.ItemStack;
  16. import org.bukkit.inventory.meta.ItemMeta;
  17.  
  18. public class SignCMD implements CommandExecutor {
  19. public boolean onCommand(CommandSender sender, Command arg1, String arg2, String[] args) {
  20. File file = new File("plugins/Signieren/config.yml");
  21. YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
  22. Player p = (Player)sender;
  23. String prefix = cfg.getString("messages.prefix").replace("&", "§");
  24. prefix = String.valueOf(prefix) + " §7";
  25. String signset = cfg.getString("messages.set").replace("&", "§");
  26. String getIteminHand = cfg.getString("messages.iteminhand").replace("&", "§");
  27. String NoPerms = cfg.getString("messages.nopermission").replace("&", "§");
  28. String timeStamp = (new SimpleDateFormat("dd.MM.yyyy")).format(Calendar.getInstance().getTime());
  29. String lines = cfg.getString("signature.lines").replace("&", "§");
  30. String liness = cfg.getString("signature.line").replace("&", "§");
  31. String ItemSignTrue = cfg.getString("messages.ItemSignTrue").replace("&", "§");
  32. String sign = cfg.getString("signature.user").replace("&", "§");
  33. String blockedmsg = cfg.getString("Blocked.Message.Sign").replace("&", "§");
  34. sign = sign.replace("%PLAYER%", p.getName());
  35. sign = sign.replace("%DISPLAYNAME%", p.getDisplayName());
  36. sign = sign.replace("%DATE%", timeStamp);
  37. if (p.hasPermission("signieren.sign") || p.hasPermission("signieren.*")) {
  38. if (args.length == 0) {
  39. p.sendMessage(String.valueOf(prefix) + signset);
  40. return true;
  41. }
  42. if (p.getInventory().getItemInHand().getType().equals(Material.AIR)) {
  43. sender.sendMessage(String.valueOf(prefix) + getIteminHand);
  44. return true;
  45. }
  46. for (String items : cfg.getStringList("Blocked.Items")) {
  47. if (p.getInventory().getItemInHand().getType() == Material.matchMaterial(items)) {
  48. sender.sendMessage(String.valueOf(prefix) + blockedmsg);
  49. return true;
  50. }
  51. }
  52. if (p.getInventory().getItemInHand().getAmount() > 1) {
  53. sender.sendMessage(String.valueOf(prefix) + "darfst nur ein Item gleichzeitig signieren.");
  54. return true;
  55. }
  56. StringBuilder builder = new StringBuilder("");
  57. for (int i = 0; i < args.length; i++) {
  58. if (i == args.length - 1) {
  59. builder.append(args[i]);
  60. } else {
  61. builder.append(args[i]).append(" ");
  62. }
  63. }
  64. String msg = ChatColor.translateAlternateColorCodes('&', builder.toString());
  65. String success = cfg.getString("messages.success").replace("&", "§");
  66. ItemStack item = p.getItemInHand();
  67. ItemMeta meta = item.getItemMeta();
  68. List<String> lore = meta.getLore();
  69. if (lore == null) {
  70. lore = new ArrayList<>();
  71. } else {
  72. p.sendMessage(String.valueOf(prefix) + ItemSignTrue);
  73. return true;
  74. }
  75. lore.add("");
  76. lore.add(msg);
  77. if (lines.equalsIgnoreCase("true")) {
  78. lore.add(liness);
  79. lore.add(sign);
  80. lore.add(liness);
  81. } else {
  82. lore.add(sign);
  83. }
  84. meta.setLore(lore);
  85. item.setItemMeta(meta);
  86. p.sendMessage(String.valueOf(prefix) + success);
  87. } else {
  88. p.sendMessage(String.valueOf(prefix) + NoPerms);
  89. }
  90. return false;
  91. }
  92. }
  93.  
Advertisement
Add Comment
Please, Sign In to add comment