public void run() {
   if (list.isEmpty()) {
     return;
   }
   if (server.getPlayers().isEmpty()) {
     return;
   }
   for (ProxiedPlayer player : server.getPlayers()) {
     for (String line : list.get(count).split("\n")) {
       ActionBarUtil.sendActionBar(player, line.replace("%p%", player.getName()));
     }
   }
   count++;
   if ((count + 1) > list.size()) {
     count = 0;
   }
 }
 @Override
 public Iterator<String> getRandomPlayers(String location) {
   ServerInfo server = getProxy().getServerInfo(location);
   return server != null ? getRandomPlayers(server.getPlayers()) : null;
 }
 @Override
 public Integer getOnlinePlayers(String location) {
   ServerInfo server = getProxy().getServerInfo(location);
   return server != null ? server.getPlayers().size() : null;
 }
示例#4
0
  @Override
  public boolean execute(IRCSender sender, String[] args) {
    Messages messages = plugin.getConfigManager().getConfig("messages");

    // Check for Permissions
    if (!ircModule.getPermissions().has(sender.getRawNick(), "command.scmd")) {
      ircModule
          .getIrcBot()
          .sendToChannel(
              MCToIrcFormat.translateString(
                  messages.IRC_Command_Scmd_NotEnoughPermission.replace(
                      "%nick", sender.getRawNick())),
              sender.getChannel());
      return true;
    }

    if (args.length < 2) {
      ircModule
          .getIrcBot()
          .sendToChannel(
              MCToIrcFormat.translateString(
                  messages.IRC_Command_Scmd_NotEnoughArguments.replace(
                      "%nick", sender.getRawNick())),
              sender.getChannel());
      return true;
    }

    // Check for Server and command permission
    String server = args[0];
    String command = args[1];

    if (!ircModule.getPermissions().has(sender.getRawNick(), "command.scmd.server." + server)) {
      ircModule
          .getIrcBot()
          .sendToChannel(
              MCToIrcFormat.translateString(
                  messages.IRC_Command_Scmd_NotEnoughPermissionForServer.replace(
                      "%nick", sender.getRawNick())),
              sender.getChannel());
      return true;
    }

    if (!ircModule.getPermissions().has(sender.getRawNick(), "command.scmd.command." + command)) {
      ircModule
          .getIrcBot()
          .sendToChannel(
              MCToIrcFormat.translateString(
                  messages.IRC_Command_Scmd_NotEnoughPermissionForCommand.replace(
                      "%nick", sender.getRawNick())),
              sender.getChannel());
      return true;
    }

    // Check if there is a Player online on the wanted Server
    if (!server.equals("bungee")) {
      ServerInfo serverInfo = plugin.getProxy().getServerInfo(server);
      if (serverInfo == null) {
        ircModule
            .getIrcBot()
            .sendToChannel(
                MCToIrcFormat.translateString(
                    messages.IRC_Command_Scmd_InvalidServer.replace("%nick", sender.getRawNick())),
                sender.getChannel());
        return true;
      }

      if (serverInfo.getPlayers().size() == 0) {
        ircModule
            .getIrcBot()
            .sendToChannel(
                MCToIrcFormat.translateString(
                    messages.IRC_Command_Scmd_ServerIsEmpty.replace("%nick", sender.getRawNick())),
                sender.getChannel());
        return true;
      }

      // Create a new SCMD Session
      String scommand = StringUtils.join(Arrays.copyOfRange(args, 1, args.length), " ");
      plugin
          .getPluginLogger()
          .info("Issuing SCMD '" + scommand + "' on " + args[0] + " for " + sender.getNick());
      Integer sessionId =
          ircModule
              .getIrcBot()
              .getIrcManager()
              .newScmdSession(sender.getRawNick(), sender.getChannel(), scommand);

      DispatchScmdMessage dispatchScmdMessage = new DispatchScmdMessage(scommand, sessionId);
      plugin
          .getPluginMessageManager("CloudChat")
          .sendPluginMessage(serverInfo.getPlayers().iterator().next(), dispatchScmdMessage);
    } else {
      String scommand = StringUtils.join(Arrays.copyOfRange(args, 1, args.length), " ");
      plugin
          .getPluginLogger()
          .info("Issuing SCMD '" + scommand + "' on " + args[0] + " for " + sender.getNick());
      plugin
          .getProxy()
          .getPluginManager()
          .dispatchCommand(new CloudChatCommandSender(ircModule, sender), scommand);
    }

    ircModule
        .getIrcBot()
        .sendToChannel(
            MCToIrcFormat.translateString(
                messages.IRC_Command_Scmd_CommandIssued.replace("%nick", sender.getRawNick())),
            sender.getChannel());
    return true;
  }