Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.04 KB | None | 0 0
  1. package com.xdSMP.plugins;
  2.  
  3. import java.util.HashMap;
  4. import java.util.UUID;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.GameMode;
  9. import org.bukkit.Location;
  10. import org.bukkit.Sound;
  11. import org.bukkit.World;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.command.ConsoleCommandSender;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.EventHandler;
  17. import org.bukkit.event.Listener;
  18. import org.bukkit.event.player.AsyncPlayerChatEvent;
  19. import org.bukkit.event.player.PlayerJoinEvent;
  20. import org.bukkit.event.player.PlayerQuitEvent;
  21. import org.bukkit.permissions.PermissionAttachment;
  22. import org.bukkit.plugin.java.JavaPlugin;
  23. import org.bukkit.scoreboard.Scoreboard;
  24. import org.bukkit.scoreboard.Team;
  25.  
  26. public class Main extends JavaPlugin implements Listener {
  27.  
  28.     public static Main plugin;
  29.     public HashMap<UUID, PermissionAttachment> playerPermissions = new HashMap<>();
  30.  
  31.     @Override
  32.     public void onEnable() {
  33.         plugin = this;
  34.         this.getConfig().options().copyDefaults(true);
  35.  
  36.         this.getServer().getPluginManager().registerEvents(this, this);
  37.         saveConfig();
  38.  
  39.     }
  40.  
  41.     @Override
  42.     public void onDisable() {
  43.  
  44.     }
  45.  
  46.     @EventHandler
  47.     public void onPlayerChat(AsyncPlayerChatEvent e) {
  48.         if (e.getPlayer().hasPermission("xdsmp.default")) {
  49.             e.setFormat("§a" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  50.         } else if (e.getPlayer().hasPermission("xdsmp.helper")) {
  51.             e.setFormat("§7[§2Helper§7] §a" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  52.         } else if (e.getPlayer().hasPermission("xdsmp.moderator")) {
  53.             e.setFormat("§7[§9Moderator§7] §b" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  54.         } else if (e.getPlayer().hasPermission("xdsmp.administartor")) {
  55.             e.setFormat("§7[§cAdmin§7] §c§o" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  56.         } else if (e.getPlayer().hasPermission("xdsmp.owner")) {
  57.             e.setFormat("§7[§4Owner§7] §4§o" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  58.         } else if (!(e.getPlayer().hasPermission("xdsmp.default"))) {
  59.             e.setFormat("§a" + e.getPlayer().getName() + "§7: §f" + e.getMessage());
  60.         }
  61.     }
  62.  
  63.     @EventHandler
  64.     public void onPlayerJoin(PlayerJoinEvent e) {
  65.             if (e.getPlayer().hasPermission("xdsmp.staff")) {
  66.                 e.setJoinMessage("§b" + e.getPlayer().getName() + " §7joined the server!");
  67.             } else if (!(e.getPlayer().hasPermission("xdsmp.staff"))) {
  68.                 e.setJoinMessage("§a" + e.getPlayer().getName() + "§7 joined the server!");
  69.             }
  70.             if (e.getPlayer().getName().equalsIgnoreCase(plugin.getConfig().getString("Owner"))) {
  71.                 e.setJoinMessage("§4" + e.getPlayer().getName() + "§7 joined the server!");
  72.             }
  73.  
  74.     }
  75.  
  76.     @EventHandler
  77.     public void onPlayerQuit(PlayerQuitEvent e) {
  78.         if (e.getPlayer().hasPermission("xdsmp.staff")) {
  79.             e.setQuitMessage("§b" + e.getPlayer().getName() + "§7 left the server!");
  80.         } else if (!(e.getPlayer().hasPermission("xdsmp.staff"))) {
  81.             e.setQuitMessage("§a" + e.getPlayer().getName() + "§7 left the server!");
  82.         }
  83.         if (e.getPlayer().getName().equalsIgnoreCase(plugin.getConfig().getString("Owner"))) {
  84.             e.setQuitMessage("§4" + e.getPlayer().getName() + "§7 left the server!");
  85.         }
  86.     }
  87.  
  88.     @EventHandler
  89.     public void onsChat(AsyncPlayerChatEvent e) {
  90.         if (e.getPlayer().hasPermission("xdsmp.staff")) {
  91.             if (e.getMessage().startsWith(plugin.getConfig().getString("Prefix"))) {
  92.                 for (Player player : Bukkit.getOnlinePlayers()) {
  93.                     if (player.hasPermission("xdsmp.admin")) {
  94.                         e.setCancelled(true);
  95.                         player.sendMessage("§7[§bstaffchat§7]§7 §b" + e.getPlayer().getName() + "§7:"
  96.                                 + e.getMessage().replace(plugin.getConfig().getString("Prefix"), ""));
  97.                         player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_DIDGERIDOO, 1, 1);
  98.                     }
  99.                 }
  100.             }
  101.         }
  102.     }
  103.  
  104.     public void staffPermissions(Player player) {
  105.         PermissionAttachment attachment = player.addAttachment(this);
  106.         this.playerPermissions.put(player.getUniqueId(), attachment);
  107.         staffpermissionSetter(player.getUniqueId());
  108.     }
  109.  
  110.     private void staffpermissionSetter(UUID uuid) {
  111.         PermissionAttachment attachment = this.playerPermissions.get(uuid);
  112.         for (String groups : this.getConfig().getConfigurationSection("Groups").getKeys(false)) {
  113.             for (String permissions : this.getConfig().getStringList("Groups." + groups + ".permissions")) {
  114.                 System.out.print(permissions);
  115.                 attachment.setPermission(permissions, true);
  116.             }
  117.         }
  118.     }
  119.    
  120.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  121.         if (label.equalsIgnoreCase("admin")) {
  122.             if (sender instanceof Player) {
  123.                 Player p = (Player) sender;
  124.                 if (p.hasPermission("xdsmp.admin")) {
  125.                     if (args[0].equalsIgnoreCase("gamemode")) {
  126.                         if (args[1].equalsIgnoreCase("creative")) {
  127.                             p.setGameMode(GameMode.CREATIVE);
  128.                             p.sendMessage("§c§lADMIN§8§l> §aCreative Mode!");
  129.                             Bukkit.broadcast("§7[§bstaffchat§7] §b" + p.getName() + "§7 entered creative mode!",
  130.                                     "xdsmp.staff");
  131.                         }
  132.                         if (args[1].equalsIgnoreCase("survival")) {
  133.                             p.setGameMode(GameMode.SURVIVAL);
  134.                             p.sendMessage("§c§lADMIN§8§l> §aSurvival Mode!");
  135.                             Bukkit.broadcast("§7[§bstaffchat§7] §b" + p.getName() + "§7 entered survival mode!",
  136.                                     "xdsmp.staff");
  137.                         }
  138.                         if (args[1].equalsIgnoreCase("adventure")) {
  139.                             p.setGameMode(GameMode.ADVENTURE);
  140.                             p.sendMessage("§c§lADMIN§8§l> §aAdventure Mode!");
  141.                             Bukkit.broadcast("§7[§bstaffchat§7] §b" + p.getName() + "§7 entered adventure mode!",
  142.                                     "xdsmp.staff");
  143.                         }
  144.                         if (!(args[1].equalsIgnoreCase("creative"))) {
  145.                             if (!(args[1].equalsIgnoreCase("survival"))) {
  146.                                 if (!(args[1].equalsIgnoreCase("adventure"))) {
  147.                                     p.sendMessage("§c§lADMIN§8§l> §cPlease select a valid gamemode!");
  148.                                 }
  149.                             }
  150.                         }
  151.                     } else if (args[0].isEmpty()) {
  152.                         p.sendMessage("§c§lADMIN§8§l> §cInvalid, please use a valid argument.");
  153.                     }
  154.                 } else if (!(p.hasPermission("xdsmp.admin"))) {
  155.                     p.sendMessage("§c§lADMIN§8§l> §cNo permission!");
  156.                 }
  157.                 if (args[0].equalsIgnoreCase("help")) {
  158.                     if (p.hasPermission("xdsmp.admin")) {
  159.                         p.sendMessage("§c§lADMIN §8Help");
  160.                         p.sendMessage("§8§l> §7/Admin gamemode <gamemode>");
  161.                         p.sendMessage("§8§l> §7Coming soon!");
  162.                     }
  163.                 }
  164.                 if (args[0].equalsIgnoreCase("reload")) {
  165.                     saveDefaultConfig();
  166.                     reloadConfig();
  167.                     p.sendMessage("§7Successfully reloaded §bxdSMP");
  168.                     return true;
  169.                 }
  170.             }
  171.         }
  172.         if (label.equalsIgnoreCase("staff")) {
  173.             if (sender instanceof Player) {
  174.                 Player p = (Player) sender;
  175.                 Player target = Bukkit.getPlayerExact(args[1]);
  176.                 if (p.hasPermission("xdsmp.staff.*")) {
  177.                     if (args[0].equalsIgnoreCase("add")) {
  178.                         if (args[1].equalsIgnoreCase(target.getName())) {
  179.                             if (target.hasPermission("xdsmp.staff")) {
  180.                                 p.sendMessage("§c§lSTAFF§8§l> §7User is already a staff member!");
  181.                             } else if (!(target.hasPermission("xdsmp.staff"))) {
  182.                                 staffPermissions(target);
  183.                                 p.sendMessage(
  184.                                         "§c§lSTAFF§8§l> §aSuccessfully added §r" + target.getName() + " §ato Staff!");
  185.                                 target.sendMessage("§c§lSTAFF§8§l> §aYou have been added to the Staff!");
  186.                                 target.setOp(true);
  187.                                 Bukkit.broadcast("§7[§bstaffchat§7] §b" + target.getName()
  188.                                         + " §7 has been added to the staff team!", "xdsmp.admin");
  189.                             }
  190.                         } else if (args[1] == null) {
  191.                             p.sendMessage("§c§lSTAFF§8§l> §cPlayer is not online!");
  192.                         }
  193.                     } else if (args[0].isEmpty()) {
  194.                         p.sendMessage("§c§lSTAFF§8§l> §cPlease chose arguments add or remove!");
  195.                     }
  196.                     if (args[0].equalsIgnoreCase("remove")) {
  197.                         if (args[1].equalsIgnoreCase(target.getName())) {
  198.                             playerPermissions.remove(target.getUniqueId());
  199.                             p.sendMessage(
  200.                                     "§c§lSTAFF§8§l> §aSuccessfully removed §r" + target.getName() + " §afrom Staff!");
  201.                             target.sendMessage("§c§lSTAFF§8§l> §aYou have been removed from the Staff!");
  202.                             target.setOp(false);
  203.                         } else if (args[1] == null) {
  204.                             p.sendMessage("§c§lSTAFF§8§l> §cPlayer is not online!");
  205.                         }
  206.                     }
  207.                 } else if (!(p.hasPermission("xdsmp.staff.*"))) {
  208.                     p.sendMessage("§c§lSTAFF§8§l> §cNo permission!");
  209.                 }
  210.             }
  211.  
  212.         }
  213.  
  214.         if (label.equalsIgnoreCase("discord")) {
  215.             if (sender instanceof Player) {
  216.                 Player p = (Player) sender;
  217.                 p.sendMessage("§7Join the discord! §bhttps://discord.gg/gESsWNt");
  218.             }
  219.         }
  220.         if (label.equalsIgnoreCase("gamemode")) {
  221.             if (sender instanceof Player) {
  222.                 Player p = (Player) sender;
  223.                 p.sendMessage("§c§l>> §7Sorry but this command has been disabled!");
  224.                 return false;
  225.             }
  226.         }
  227.  
  228.         if (label.equalsIgnoreCase("owner")) {
  229.             if (sender instanceof ConsoleCommandSender) {
  230.                 Player target = Bukkit.getPlayerExact(args[1]);
  231.                 if (args[0].equalsIgnoreCase("set")) {
  232.                     if (args[1].equalsIgnoreCase(target.getName())) {
  233.                         plugin.getConfig().set("Owner", args[1]);
  234.                         target.sendMessage("§a§lYou have been promoted to the Owner of the server!");
  235.                         target.setOp(true);
  236.                     }
  237.                 }
  238.                 if (args[0].equalsIgnoreCase("remove")) {
  239.                     if (args[1].equalsIgnoreCase(target.getName())) {
  240.                         plugin.getConfig().set("Owner", "");
  241.                         target.sendMessage("§c§lYou have been removed from being Owner of the server!");
  242.                         target.setOp(false);
  243.                     }
  244.                 }
  245.             } else if (sender instanceof Player) {
  246.                 Player p = (Player) sender;
  247.                 p.sendMessage("§cThis command can only be sent from a console!");
  248.                 return false;
  249.             }
  250.         }
  251.         if (label.equalsIgnoreCase("tl")) {
  252.             if (sender instanceof Player) {
  253.                 Player p = (Player) sender;
  254.                 String x = "" + p.getLocation().getX();
  255.                 String y = "" + p.getLocation().getY();
  256.                 String z = "" + p.getLocation().getZ();
  257.                 if (x.contains(".")) x = x.substring(0, x.indexOf("."));
  258.                 if (y.contains(".")) y = y.substring(0, y.indexOf("."));
  259.                 if (z.contains(".")) z = z.substring(0, z.indexOf("."));
  260.                 Bukkit.broadcastMessage("§b" + p.getName() + "§7's location is" + " §bX: " + "§7" + x + " §bY: " + "§7" + y + " §bZ: " + "§7" + z);
  261.                 p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_XYLOPHONE, 1 ,1);
  262.             } else {
  263.                 return false;
  264.             }
  265.         }
  266.         if (label.equalsIgnoreCase("spawn")) {
  267.             if (sender instanceof Player) {
  268.                 Player p = (Player) sender;
  269.                
  270.                 double x = Double.parseDouble(getConfig().getString("SpawnX"));
  271.                 double y = Double.parseDouble(getConfig().getString("SpawnY"));
  272.                 double z = Double.parseDouble(getConfig().getString("SpawnZ"));
  273.                 World world = Bukkit.getWorld(getConfig().getString("World"));
  274.                 Location location = new Location(world, x, y, z);
  275.                 p.teleport(location);
  276.                 p.playSound(p.getLocation(), Sound.BLOCK_BEACON_ACTIVATE, 1, 1);
  277.                 p.sendMessage("§7You teleported to §bSpawn§7!");
  278.             } else {
  279.                 return false;
  280.             }
  281.         }
  282.         if (label.equalsIgnoreCase("setspawn")) {
  283.             if (sender instanceof Player) {
  284.                 Player p = (Player) sender;
  285.                 String x = "" + p.getLocation().getX();
  286.                 String y = "" + p.getLocation().getY();
  287.                 String z = "" + p.getLocation().getZ();
  288.                 String world = "" + p.getLocation().getWorld().getName();
  289.                 if (p.hasPermission("xdsmp.spawn.set")) {
  290.                     getConfig().set("SpawnX", x);
  291.                     getConfig().set("SpawnY", y);
  292.                     getConfig().set("SpawnZ", z);
  293.                     getConfig().set("World", world);
  294.                     p.sendMessage("§7You have set the new spawnpoint");
  295.                     saveConfig();
  296.                 } else {
  297.                     p.sendMessage("§cNo permission!");
  298.                 }
  299.             } else {
  300.                 return false;
  301.             }
  302.         }
  303.         if (label.equalsIgnoreCase("rules")) {
  304.             if (sender instanceof Player) {
  305.                 Player p = (Player) sender;
  306.                 p.sendMessage("§b§lxdSMP §7Rules");
  307.                 p.sendMessage("§8§l> §cNO Hacking.");
  308.                 p.sendMessage("§8§l> §cNO Griefing.");
  309.                 p.sendMessage("§8§l> §cNO Stealing.");
  310.                 p.sendMessage("§8§l> §7If you get caught breaking the rules you will be banned.");
  311.             }
  312.         }
  313.         if (label.equalsIgnoreCase("tag")) {
  314.             if (sender instanceof Player) {
  315.                 Player p = (Player) sender;
  316.                 Player t = Bukkit.getPlayerExact(args[1]);
  317.                 Scoreboard scoreboard = getServer().getScoreboardManager().getMainScoreboard();
  318.                 Team team = scoreboard.registerNewTeam(args[2]);
  319.                 if (p.hasPermission("xdsmp.tag.set")) {
  320.                     if (args[0].equalsIgnoreCase("set")) {
  321.                         if (args[1].equalsIgnoreCase(t.getName())) {
  322.                             if (!(args[2].isEmpty())) {
  323.                                 team.setSuffix(ChatColor.translateAlternateColorCodes('&', "§r " + args[2]));
  324.                                 team.addEntry(args[1]);
  325.                                 p.sendMessage("§aAdded!");
  326.                                
  327.                             } else {
  328.                                 p.sendMessage("§7Please use §b/tag set <player> <tag>");
  329.                             }
  330.                         }
  331.                     }
  332.                 } else {
  333.                     p.sendMessage("§cNo permission!");
  334.                 }
  335.             }
  336.         }
  337.         if (label.equalsIgnoreCase("op")) {
  338.             if (sender instanceof Player) {
  339.                 Player p = (Player) sender;
  340.                 Player t = Bukkit.getPlayer(args[0]);
  341.                 if (p.hasPermission("xdsmp.administrator")) {
  342.                     if (args[0].equalsIgnoreCase(t.getName())) {
  343.                         if (t.isOp() == false) {
  344.                             t.setOp(true);
  345.                             p.sendMessage("§7Successfully opped §b" + t.getName() + "§7!");
  346.                             t.sendMessage("§7You have been opped by §b" + p.getName() + "§7!");
  347.                         } else {
  348.                             p.sendMessage("§7This player is already opped");
  349.                         }
  350.                     }
  351.                 } else {
  352.                     p.sendMessage("§cNo permission!");
  353.                 }
  354.             } else if (sender instanceof ConsoleCommandSender) {
  355.                 Player t = Bukkit.getPlayer(args[0]);
  356.                 if (t.isOp() == false) {
  357.                     t.setOp(true);
  358.                     Bukkit.getConsoleSender().sendMessage("§7Successfully opped §b" + t.getName());
  359.                     t.sendMessage("§7You have been opped by §bConsole§7!");
  360.                 } else {
  361.                     Bukkit.getConsoleSender().sendMessage("§7This player is already opped!");
  362.                 }
  363.             }
  364.         }
  365.         if (label.equalsIgnoreCase("deop")) {
  366.             if (sender instanceof Player) {
  367.                 Player p = (Player) sender;
  368.                 Player t = Bukkit.getPlayer(args[0]);
  369.                 if (p.hasPermission("xdsmp.administrator")) {
  370.                     if (args[0].equalsIgnoreCase(t.getName())) {
  371.                         if (t.isOp() == true) {
  372.                             t.setOp(false);
  373.                             p.sendMessage("§7Successfully de-opped §b " + t.getName() + "§7!");
  374.                             t.sendMessage("§7You have been de-opped by §b" + p.getName() + "§7!");
  375.                         }
  376.                     }
  377.                 } else {
  378.                     p.sendMessage("§cNo permission!");
  379.                 }
  380.             } else if (sender instanceof ConsoleCommandSender) {
  381.                 Player t = Bukkit.getPlayer(args[0]);
  382.                 if (t.isOp() == true) {
  383.                     t.setOp(false);
  384.                     Bukkit.getConsoleSender().sendMessage("§7Successfully de-opped §b" + t.getName());
  385.                     t.sendMessage("§7You have been de-opped by §bConsole§7!");
  386.                 } else {
  387.                     Bukkit.getConsoleSender().sendMessage("§7This player is not opped!");
  388.                 }
  389.             }
  390.         }
  391.         if (label.equalsIgnoreCase("tablespoon")) {
  392.             if (sender instanceof Player) {
  393.                 Player p = (Player) sender;
  394.                     p.playSound(p.getLocation(), Sound.AMBIENT_CAVE ,1,1);
  395.             }
  396.         }
  397.        
  398.         return false;
  399.     }
  400. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement