ScReamer18
Участник
- Баллы
- 31
Доброго времени суток, решил создать простенький плагин, который при вводе команды выводит список операторов онлайн, но столкнулся с одной проблемой - проверка на онлайн и оператора происходит только у отправляющего, то есть если отправляющий - оператор, то ему отправится сообщение с его же именем, вне зависимости от того, сколько операторов находится на сервере. Не подскажете, как это пофиксить? P.S. Понял, что в проблема в строчке
, но не понимаю, как можно сделать по-другому. Сам код:
Код:
Player player = (Player) sender;
Код:
package ru;
import java.util.ArrayList;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener{
ArrayList<String> names = new ArrayList<String>();
String allops = new String();
public void onEnable(){
getLogger().info("Plugin was enabled");
getServer().getPluginManager().registerEvents(this, this);
}
public void onDisable(){
getLogger().info("Plugin was disabled");
}
@EventHandler
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
Player player = (Player) sender;
if (player.getPlayer().isOp() == true && player.getPlayer().isOnline() == true){
names.add(player.getName());
}else{
names.remove(player.getName());
}
if (cmd.getName().equalsIgnoreCase("admins")){
for(int i = 0; i < names.size(); i++){
allops = names.get(i) + " ";
sender.sendMessage(ChatColor.YELLOW + "Администраторы онлайн: " + ChatColor.RED + allops);
names.clear();
}
}if (names.isEmpty() == true){
sender.sendMessage(ChatColor.YELLOW + "Нет администраторов онлайн");
}return true;
}
}