mirror of
https://github.com/filoghost/ChestCommands.git
synced 2025-02-19 21:11:42 +01:00
Fix old missing method
This commit is contained in:
parent
df6ff3f793
commit
7faa9cbe85
@ -12,6 +12,7 @@ import com.gmail.filoghost.chestcommands.internal.ExtendedIconMenu;
|
||||
import com.gmail.filoghost.chestcommands.internal.MenuInventoryHolder;
|
||||
import com.gmail.filoghost.chestcommands.task.ErrorLoggerTask;
|
||||
import com.gmail.filoghost.chestcommands.util.ErrorLogger;
|
||||
import com.gmail.filoghost.chestcommands.util.VersionUtils;
|
||||
|
||||
public class CommandHandler extends CommandFramework {
|
||||
|
||||
@ -46,7 +47,7 @@ public class CommandHandler extends CommandFramework {
|
||||
if (args[0].equalsIgnoreCase("reload")) {
|
||||
CommandValidate.isTrue(sender.hasPermission(Permissions.COMMAND_BASE + "reload"), "You don't have permission.");
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
for (Player player : VersionUtils.getOnlinePlayers()) {
|
||||
if (player.getOpenInventory() != null) {
|
||||
if (player.getOpenInventory().getTopInventory().getHolder() instanceof MenuInventoryHolder || player.getOpenInventory().getBottomInventory().getHolder() instanceof MenuInventoryHolder) {
|
||||
player.closeInventory();
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.gmail.filoghost.chestcommands.task;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryView;
|
||||
|
||||
import com.gmail.filoghost.chestcommands.internal.ExtendedIconMenu;
|
||||
import com.gmail.filoghost.chestcommands.internal.MenuInventoryHolder;
|
||||
import com.gmail.filoghost.chestcommands.util.VersionUtils;
|
||||
|
||||
public class RefreshMenusTask implements Runnable {
|
||||
|
||||
@ -15,7 +15,7 @@ public class RefreshMenusTask implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
for (Player player : VersionUtils.getOnlinePlayers()) {
|
||||
|
||||
InventoryView view = player.getOpenInventory();
|
||||
if (view == null) {
|
||||
|
@ -0,0 +1,41 @@
|
||||
package com.gmail.filoghost.chestcommands.util;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class VersionUtils {
|
||||
|
||||
private static boolean setup;
|
||||
private static Method oldGetOnlinePlayersMethod;
|
||||
private static boolean useReflection;
|
||||
|
||||
public static Collection<? extends Player> getOnlinePlayers() {
|
||||
try {
|
||||
|
||||
if (!setup) {
|
||||
oldGetOnlinePlayersMethod = Bukkit.class.getDeclaredMethod("getOnlinePlayers");
|
||||
if (oldGetOnlinePlayersMethod.getReturnType() == Player[].class) {
|
||||
useReflection = true;
|
||||
}
|
||||
|
||||
setup = true;
|
||||
}
|
||||
|
||||
if (!useReflection) {
|
||||
return Bukkit.getOnlinePlayers();
|
||||
} else {
|
||||
Player[] playersArray = (Player[]) oldGetOnlinePlayersMethod.invoke(null);
|
||||
return ImmutableList.copyOf(playersArray);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user