Guest User

Untitled

a guest
Mar 6th, 2024
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.23 KB | Source Code | 0 0
  1. package ru.rockntt.randomitem;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandExecutor;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.scheduler.BukkitRunnable;
  8. import org.bukkit.scheduler.BukkitTask;
  9. import org.bukkit.plugin.java.JavaPlugin;
  10. import org.jetbrains.annotations.NotNull;
  11. import org.bukkit.entity.Player;
  12.  
  13. import java.util.ArrayList;
  14. import java.util.Arrays;
  15. import java.util.List;
  16.  
  17. import ru.rockntt.randomitem.MyFunctions;
  18.  
  19. public final class RandomItem extends JavaPlugin {
  20.  
  21.     private Player[] playerList = new ArrayList<>().toArray(new Player[0]);
  22.     private BukkitTask itemGiveTask;
  23.    
  24.     private boolean isSchedulerRunning = false;
  25.     private int item_give_period = 600;
  26.  
  27.     @Override
  28.     public void onEnable() {
  29. //        itemGiveTask = getServer().getScheduler().runTaskTimer(this, new Runnable() {
  30. //            @Override
  31. //            public void run() {
  32. //                // Ваш код для выдачи предметов игрокам
  33. //                MyFunctions.giveRandomItemToPlayers(playerList);
  34. //            }
  35. //        }, 0L, item_give_period);
  36.         itemGiveTask = Bukkit.getScheduler().runTaskTimer(this, MyFunctions.giveRandomItemToPlayers, 0, item_give_period); // 20 тиков = 1 секунда
  37.         getCommand("randomitem").setExecutor(new CommandExecutor() {
  38.             @Override
  39.             public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
  40.                 if(args.length == 0){
  41.                     sender.sendMessage("Reload plugin: /randomitem reload");
  42.                     return true;
  43.                 }
  44.  
  45.                 if (args.length > 1) {
  46.                     if (args[0].equalsIgnoreCase("addplayer")) {
  47.                         Player player = (Player) sender;
  48.                         Player targetPlayer = getServer().getPlayerExact(args[1]); // Получаем игрока по нику
  49.                         if (targetPlayer != null) {
  50.                             addPlayer(targetPlayer);
  51.                             sender.sendMessage("Игрок " + targetPlayer.getName() + " добавлен в список участвующих.");
  52.                         } else {
  53.                             sender.sendMessage("Игрок не найден.");
  54.                         }
  55.                         return true;
  56.  
  57.                     }
  58.                 }
  59.                 if(args[0].equalsIgnoreCase("reload")){
  60.                     reloadConfig();
  61.                     sender.sendMessage("Plugin reloaded");
  62.                     return true;
  63.                 }
  64.                 if(args[0].equalsIgnoreCase("players")){
  65.  
  66.                     if (playerList.length != 0) {
  67.                         s = new String();
  68.                         s += "Участвующие игроки: ";
  69.                         for (Player k : playerList) {
  70.                             s += k.getName() + " ";
  71.                         }
  72.                         sender.sendMessage(s);
  73.                         return true;
  74.                     } else {
  75.                         sender.sendMessage("Пока что никто не участвует в вашей игре. Добавьте игроков: /randomitem addplayer <nick>");
  76.                     }
  77.                     return true;
  78.                 }
  79.                 if(args.length == 1 && args[0].equalsIgnoreCase("stop")){
  80.                     if (isSchedulerRunning) {
  81.                         itemGiveTask.cancel();
  82.                         isSchedulerRunning = false;
  83.                         sender.sendMessage("Игра остановлена");
  84.                     } else {
  85.                         sender.sendMessage("Игра и так не начата");
  86.                     }
  87.                     return true;
  88.                 }
  89.  
  90.                 if(args.length == 1 && args[0].equalsIgnoreCase("start")){
  91.                     if (!isSchedulerRunning) {
  92.                         itemGiveTask = Bukkit.getScheduler().runTaskTimer(JavaPlugin.getPlugin(RandomItem.class), MyFunctions.giveRandomItemToPlayers, 0, item_give_period); // 20 тиков = 1 секунда
  93.                         isSchedulerRunning = true;
  94.                         sender.sendMessage("Игра начата!");
  95.                     } else {
  96.                         sender.sendMessage("Игра уже идет!");
  97.                     }
  98.                     return true;
  99.                 }
  100.                 if(args.length > 2 && (args[0] + " " + args[1]).equalsIgnoreCase("set time")){
  101.                     item_give_period = (int)Math.ceil(Double.parseDouble(args[2])) * 20;
  102.                     sender.sendMessage(String.format("Период выдачи предметов игрокам установлен на %s", item_give_period / 20));
  103.                 }
  104.                 return true;
  105.             }
  106.             public void addPlayer(Player player) {
  107.                 Player[] newArray = Arrays.copyOf(playerList, playerList.length + 1);
  108.                 newArray[newArray.length - 1] = player;
  109.                 playerList = newArray;
  110.             }
  111.         });
  112.     }
  113.  
  114.     @Override
  115.     public void onDisable() {
  116.     }
  117. }
  118.  
Add Comment
Please, Sign In to add comment