Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.alex.minesimul.commands;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.Sound;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import net.md_5.bungee.api.chat.ClickEvent;
- import net.md_5.bungee.api.chat.ComponentBuilder;
- import net.md_5.bungee.api.chat.HoverEvent;
- import net.md_5.bungee.api.chat.TextComponent;
- import ru.alex.minesimul.MineSimulPlugin;
- import ru.alex.minesimul.managers.PlayerManager;
- import ru.alex.minesimul.utils.CoolDown;
- public class VoteCommand implements CommandExecutor {
- public List<String> votes = new ArrayList<>();
- public HashMap<String, HashMap<Boolean, Integer>> results = new HashMap<>();
- public HashMap<String, List<Player>> voters = new HashMap<>();
- public HashMap<String, Player> actions = new HashMap<>();
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (args.length >= 2) {
- String how = args[0];
- String what = args[1];
- if (how.equalsIgnoreCase("agree")) {
- if (!votes.contains(what)) {
- sender.sendMessage("§cКек §fГолосования сейчас нету, начать его §c/vote <что> <над кем>");
- return true;
- }
- if (voters.get(what).contains((Player) sender)) {
- sender.sendMessage("§cКек §fТы же уже голосовал, больше нинада");
- return true;
- }
- HashMap<Boolean, Integer> rs = new HashMap<>();
- rs = results.get(what);
- Integer amount = rs.get(true);
- amount += 1;
- rs.put(true, amount);
- List<Player> vv = new ArrayList<>();
- vv = voters.get(what);
- vv.add((Player) sender);
- voters.put(what, vv);
- sender.sendMessage("§eМаладец! §fТы проголосовал §aЗА");
- return true;
- } else if (how.equalsIgnoreCase("disagree")) {
- if (!votes.contains(what)) {
- sender.sendMessage("§cКек §fГолосования сейчас нету, начать его §c/vote <что> <над кем>");
- return true;
- }
- if (voters.get(what).contains((Player) sender)) {
- sender.sendMessage("§cКек §fТы же уже голосовал, больше нинада");
- return true;
- }
- HashMap<Boolean, Integer> rs = new HashMap<>();
- rs = results.get(what);
- Integer amount = rs.get(false);
- amount += 1;
- rs.put(false, amount);
- List<Player> vv = new ArrayList<>();
- vv = voters.get(what);
- vv.add((Player) sender);
- voters.put(what, vv);
- sender.sendMessage("§eМаладец! §fТы проголосовал §cПРОТИВ");
- ;
- return true;
- } else {
- if (Bukkit.getPlayer(args[1]) == null) {
- sender.sendMessage("§cУпсс §fИгрока §e" + args[1] + "§f нету на сервере");
- return true;
- }
- Player target = Bukkit.getPlayer(args[1]);
- String what2 = args[0];
- if (votes.contains(what2)) {
- sender.sendMessage("§cУпсс §fГолосование уже идет, сначала нада закончить это");
- return true;
- }
- if (sender.hasPermission("powermining.votedeny") && (!sender.isOp())) {
- sender.sendMessage("§cУпс! §fТебе запретили начинать голосование");
- return true;
- }
- if (PlayerManager.getTimePlayed(sender.getName()) < 18000) {
- sender.sendMessage("§cСорян §fНизя начинать голосование игроку, наигравшему меньше §c5 часов ");
- return true;
- }
- if (target.getName().equals(sender.getName()) && !target.isOp()) {
- sender.sendMessage("§cПалегче §fНизя начинать голосование за самого себя");
- return true;
- }
- if((!CoolDown.tryCooldown((Player) sender, "vote", 10 * 60 * 1000)) && !(sender.isOp() || sender.hasPermission("powermining.voteexpands"))) {
- sender.sendMessage("§cОшЫбка §fВ следующий раз можно будет начинать голосование через §c" + CoolDown.getMinutesRemind((Player) sender, "vote") + " мин");
- return true;
- }
- if (what2.equalsIgnoreCase("jail")) {
- votes.add(what2);
- TextComponent zero = new TextComponent(" ");
- TextComponent agree = new TextComponent("§7[§a§lЯ за§r§7]");
- agree.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/vote agree " + what2));
- agree.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
- new ComponentBuilder("§fНажми чтобы §aсогласиться").create()));
- zero.addExtra(agree);
- TextComponent zero2 = new TextComponent(" ");
- TextComponent disagree = new TextComponent("§7[§c§lЯ против§r§7]");
- disagree.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/vote disagree " + what2));
- disagree.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
- new ComponentBuilder("§fНажми чтобы §cне согласится").create()));
- zero2.addExtra(disagree);
- zero.addExtra(zero2);
- String reason = "§r";
- if(args.length >= 3) {
- reason = " §6↪ §fПричина - §7§o";
- for (int i = 2; i < args.length; i++) reason = reason + args[i] + " ";
- reason.replace("&", "§");
- }
- for (Player p : Bukkit.getOnlinePlayers()) {
- p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 2.0f, 1.0f);
- p.sendMessage("§r");
- p.sendMessage(" §aГолосование!");
- p.sendMessage("§fИгрок §e" + PlayerManager.getDisplayName(sender.getName()) + "§f захотел §aпосадить");
- p.sendMessage("§fв дурку§r §fигрока §e" + PlayerManager.getDisplayName(target.getName()) + "§f Стоит?");
- p.sendMessage(reason);
- p.spigot().sendMessage(zero);
- p.sendMessage("§r");
- }
- HashMap<Boolean, Integer> rr = new HashMap<>();
- rr.put(true, 0);
- rr.put(false, 0);
- results.put(what2, rr);
- List<Player> pp = new ArrayList<>();
- voters.put(what2, pp);
- actions.put(what2, target);
- runTimeSheduler(what2);
- } else if (what2.equalsIgnoreCase("mute")) {
- votes.add(what2);
- TextComponent zero = new TextComponent(" ");
- TextComponent agree = new TextComponent("§7[§a§lЯ за§r§7]");
- agree.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/vote agree " + what2));
- agree.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
- new ComponentBuilder("§fНажми чтобы §aсогласиться").create()));
- zero.addExtra(agree);
- TextComponent zero2 = new TextComponent(" ");
- TextComponent disagree = new TextComponent("§7[§c§lЯ против§r§7]");
- disagree.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/vote disagree " + what2));
- disagree.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
- new ComponentBuilder("§fНажми чтобы §cне согласится").create()));
- zero2.addExtra(disagree);
- zero.addExtra(zero2);
- String reason = "§r";
- if(args.length >= 3) {
- reason = " §6↪ §fПричина - §7§o";
- for (int i = 2; i < args.length; i++) reason = reason + args[i] + " ";
- reason.replace("&", "§");
- }
- for (Player p : Bukkit.getOnlinePlayers()) {
- p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 2.0f, 1.0f);
- p.sendMessage("§r");
- p.sendMessage(" §aГолосование!");
- p.sendMessage("§fИгрок §e" + PlayerManager.getDisplayName(sender.getName()) + "§f захотел §cзамутить");
- p.sendMessage("§fигрока §e" + PlayerManager.getDisplayName(target.getName()) + "§f Стоит?");
- p.sendMessage(reason);
- p.spigot().sendMessage(zero);
- p.sendMessage("§r");
- }
- HashMap<Boolean, Integer> rr = new HashMap<>();
- rr.put(true, 0);
- rr.put(false, 0);
- results.put(what2, rr);
- List<Player> pp = new ArrayList<>();
- voters.put(what2, pp);
- actions.put(what2, target);
- runTimeSheduler(what2);
- }
- return true;
- }
- }
- sender.sendMessage("§cУпс §fИспользуй §c/vote <что> <над кем> <причина>");
- return true;
- }
- public void runTimeSheduler(String what) {
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MineSimulPlugin.getPlugin(),
- (Runnable) new Runnable() {
- @Override
- public void run() {
- Integer agree = results.get(what).get(true);
- Integer disagree = results.get(what).get(false);
- Player player = actions.get(what);
- String[] message = { "§r",
- "§eНичья! §fИгрок §e" + PlayerManager.getDisplayName(player.getName())
- + "§f останется нетронутым",
- "§r", " §7[§a§l" + agree + "§r§7] §7[§c§l" + disagree + "§r§7]" };
- if (agree > disagree) {
- if (what.equalsIgnoreCase("jail")) {
- message[1] = "§aДа! §fИгрок §e" + PlayerManager.getDisplayName(player.getName())
- + "§f будет посажен в дурку на §e5 минут";
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "jail " + player.getName() + " jail 5m");
- } else if (what.equalsIgnoreCase("mute")) {
- message[1] = "§aДа! §fИгрок §e" + PlayerManager.getDisplayName(player.getName())
- + "§f будет замучен на §e5 минут";
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempmute " + player.getName() + " 5 m По итогам голосования");
- }
- } else if (agree < disagree){
- if (what.equalsIgnoreCase("jail"))
- message[1] = "§cНет! §fИгрок §e" + PlayerManager.getDisplayName(player.getName())
- + "§f не будет посажен в дурку";
- }
- for (Player pl : Bukkit.getOnlinePlayers()) {
- pl.playSound(pl.getLocation(), Sound.ENTITY_VILLAGER_YES, 2.0f, 1.0f);
- pl.sendMessage(message);
- }
- votes.remove(what);
- voters.remove(what);
- actions.remove(what);
- results.remove(what);
- }
- }, 20L * 10);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement