Ошибка при обновлении плагина ChatGame

maleev

Пользователь
Сообщения
15
Всем привет. Недавно появился необходимость обновить плагин ChatGame_Last, версии 1.8. Дело в том, что его API находится на версии 1.7.10, что не подходит для моего 1.12.2 сервера. В Java я полный 0. Решения с других форумов тоже не дали результатов.

Java:
      public static void broadcastMessage(String message) {  
        Player[] arrayOfPlayer;
        int i = (arrayOfPlayer = Main.plugin.getServer().getOnlinePlayers().length());
        for (byte b = 0; b < i; ) {
          Player player = arrayOfPlayer[B];
          player.sendMessage(message);
          b++;
        }
      }

Ошибка, которую выдает Eclipse:

The method length() is undefined for the type Collection<capture#1-of ? extends Player>

Полный код класса:

Java:
package ru.maleev.HubChatGame;

import java.util.logging.Logger;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.economy.EconomyResponse;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;

public class Utils {
      static Logger log = Main.log;
      
      public static boolean setupEconomy() {
        if (Bukkit.getServer().getPluginManager().getPlugin("Vault") == null) {
          log.severe("Vault = null");
          return false;
        }
        RegisteredServiceProvider<Economy> rsp = Bukkit.getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp == null) {
          log.severe("rsp = null");
          return false;
        }
        Main.econ = (Economy)rsp.getProvider();
        if (Main.econ == null)
          log.severe("econ = null");
        return (Main.econ != null);
      }
      
      public static void giveMoney(Player player) {
        EconomyResponse r = Main.econ.depositPlayer(player.getName(), Main.config.getInt("awardCost"));
        if (r.transactionSuccess()) {
          player.sendMessage(String.format(String.valueOf(StartGameTask.prefix) + "Тебе выдали награду %s! Твой баланс на данный момент: %s", new Object[] { Main.econ.format(r.amount), Main.econ.format(r.balance) }));
        } else {
          player.sendMessage(String.format(ChatColor.RED + "%s", new Object[] { r.errorMessage }));
        }
      }
      
      public static void restartCounter() {
        (new StartGameTask(Main.plugin)).runTaskLater((Plugin)Main.plugin, (Main.config.getInt("gameDelay") * 20));
      }
      
      public static void giveItem(Player player) {
        PlayerInventory inventory = player.getInventory();
        inventory.addItem(new ItemStack[] { new ItemStack(Material.getMaterial(Main.config.getInt("awardId")), Main.config.getInt("awardCount")) });
      }
      
      public static void broadcastMessage(String message) {   
        Player[] arrayOfPlayer;
        int i = (arrayOfPlayer = Main.plugin.getServer().getOnlinePlayers().length());
        for (byte b = 0; b < i; ) {
          Player player = arrayOfPlayer[B];
          player.sendMessage(message);
          b++;
        }
      }
    }
[/B][/B]
 
Решение
Java:
      public static void broadcastMessage(String message) {   
        for (Player player : Bukkit.getOnlinePlayers()) {
          player.sendMessage(message);
        }
      }
Авто объединение сообщений:

Стоп, это вообще по сути не нужно: Bukkit имеет свой метод Bukkit#broadcastMessage(String)
Java:
      public static void broadcastMessage(String message) {   
        for (Player player : Bukkit.getOnlinePlayers()) {
          player.sendMessage(message);
        }
      }
Авто объединение сообщений:

Стоп, это вообще по сути не нужно: Bukkit имеет свой метод Bukkit#broadcastMessage(String)
 
Назад
Сверху Снизу