Fix NoSuchMethodError for PlaceholderAPI after breaking change

Fixes #386
This commit is contained in:
games647
2020-07-31 17:01:30 +02:00
parent 25b6ca7653
commit fa1f85698a
3 changed files with 9 additions and 13 deletions

View File

@ -137,7 +137,7 @@
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.10.6</version>
<version>2.10.7</version>
<scope>provided</scope>
<optional>true</optional>
<exclusions>

View File

@ -40,6 +40,8 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
private final BukkitScheduler scheduler;
private FastLoginCore<Player, CommandSender, FastLoginBukkit> core;
private PremiumPlaceholder premiumPlaceholder;
public FastLoginBukkit() {
this.logger = CommonUtil.createLoggerFromJDK(getLogger());
this.scheduler = new BukkitScheduler(this, logger, getThreadFactory());
@ -89,7 +91,8 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
getCommand("cracked").setExecutor(new CrackedCommand(this));
if (pluginManager.isPluginEnabled("PlaceholderAPI")) {
new PremiumPlaceholder(this).register();
premiumPlaceholder = new PremiumPlaceholder(this);
premiumPlaceholder.register();
}
}
@ -103,8 +106,8 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
}
bungeeManager.cleanup();
if (getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) {
PremiumPlaceholder.unregisterAll(this);
if (getServer().getPluginManager().isPluginEnabled("PlaceholderAPI") && premiumPlaceholder != null) {
premiumPlaceholder.unregister();
}
}
@ -151,9 +154,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin<Comman
* @param onlinePlayer
* @return the online status or unknown if an error happened, the player isn't online or BungeeCord doesn't send
* us the status message yet (This means you cannot check the login status on the PlayerJoinEvent).
* @deprecated this method could be removed in future versions and exists only as a temporarily solution
*/
@Deprecated
public PremiumStatus getStatus(UUID onlinePlayer) {
return premiumPlayers.getOrDefault(onlinePlayer, PremiumStatus.UNKNOWN);
}

View File

@ -1,9 +1,8 @@
package com.github.games647.fastlogin.bukkit;
import me.clip.placeholderapi.PlaceholderAPI;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
import org.bukkit.OfflinePlayer;
public class PremiumPlaceholder extends PlaceholderExpansion {
@ -15,12 +14,8 @@ public class PremiumPlaceholder extends PlaceholderExpansion {
this.plugin = plugin;
}
public static void unregisterAll(FastLoginBukkit plugin) {
PlaceholderAPI.unregisterPlaceholderHook(plugin.getName());
}
@Override
public String onPlaceholderRequest(Player player, String identifier) {
public String onRequest(OfflinePlayer player, String identifier) {
// player is null if offline
if (player != null && PLACEHOLDER_VARIABLE.equals(identifier)) {
return plugin.getStatus(player.getUniqueId()).getReadableName();