mirror of
https://github.com/Maxlego08/zKoth.git
synced 2025-02-22 02:42:15 +01:00
Ajout de tab premium hook
This commit is contained in:
parent
7234f7c672
commit
36efa82f51
@ -2,5 +2,5 @@ name: zKoth
|
||||
author: Maxlego08
|
||||
main: fr.maxlego08.zkoth.ZKothPlugin
|
||||
version: 2.0.0.2
|
||||
softdepend: [PlaceholderAPI, Guilds, Factions, FactionsX, SuperiorSkyblock2, LegacyFactions, FeatherBoard]
|
||||
softdepend: [PlaceholderAPI, Guilds, Factions, FactionsX, SuperiorSkyblock2, LegacyFactions, FeatherBoard, TAB]
|
||||
commands:
|
||||
|
@ -11,6 +11,7 @@ import fr.maxlego08.zkoth.save.Config;
|
||||
import fr.maxlego08.zkoth.save.MessageLoader;
|
||||
import fr.maxlego08.zkoth.scoreboard.ScoreBoardManager;
|
||||
import fr.maxlego08.zkoth.scoreboard.implementations.FeatherBoardHook;
|
||||
import fr.maxlego08.zkoth.scoreboard.implementations.TabPremiumHook;
|
||||
import fr.maxlego08.zkoth.zcore.ZPlugin;
|
||||
import fr.maxlego08.zkoth.zcore.utils.plugins.Metrics;
|
||||
import fr.maxlego08.zkoth.zcore.utils.plugins.Plugins;
|
||||
@ -58,10 +59,11 @@ public class ZKothPlugin extends ZPlugin {
|
||||
|
||||
if (this.isEnable(Plugins.FEATHERBOARD)) {
|
||||
this.scoreboardManager.setScoreboard(new FeatherBoardHook());
|
||||
} else if (this.isEnable(Plugins.TAB)) {
|
||||
this.scoreboardManager.setScoreboard(new TabPremiumHook());
|
||||
}
|
||||
this.scoreboardManager.setDefaultScoreboard();
|
||||
|
||||
|
||||
|
||||
getSavers().forEach(saver -> saver.load(getPersist()));
|
||||
|
||||
new Metrics(this, 6924);
|
||||
|
@ -1,19 +1,22 @@
|
||||
package fr.maxlego08.zkoth.api;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public interface Scoreboard {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param player
|
||||
*/
|
||||
public void toggle(Player player);
|
||||
public void toggle(Player player, Consumer<Player> after);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param player
|
||||
*/
|
||||
public void hide(Player player);
|
||||
public void hide(Player player, Consumer<Player> after);
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package fr.maxlego08.zkoth.scoreboard;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -74,12 +75,35 @@ public class ScoreBoardManager extends ZUtils {
|
||||
board.updateLines(lines.accept(player));
|
||||
|
||||
boards.put(player, board);
|
||||
this.scoreboard.hide(player);
|
||||
this.scoreboard.hide(player, create(board, player, title));
|
||||
|
||||
return board;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param player
|
||||
* @param title
|
||||
* @return
|
||||
*/
|
||||
private Consumer<Player> create(FastBoard current, Player player, String title) {
|
||||
return p -> {
|
||||
|
||||
if (current != null)
|
||||
current.delete();
|
||||
boards.remove(player);
|
||||
|
||||
FastBoard board = new FastBoard(player);
|
||||
board.updateTitle(title);
|
||||
|
||||
if (lines != null)
|
||||
board.updateLines(lines.accept(player));
|
||||
|
||||
boards.put(player, board);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete player board
|
||||
*
|
||||
@ -91,7 +115,9 @@ public class ScoreBoardManager extends ZUtils {
|
||||
return false;
|
||||
FastBoard board = getBoard(player);
|
||||
board.delete();
|
||||
this.scoreboard.toggle(player);
|
||||
this.scoreboard.toggle(player, p -> {
|
||||
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -114,8 +140,10 @@ public class ScoreBoardManager extends ZUtils {
|
||||
this.isRunning = false;
|
||||
this.boards.keySet().forEach(key -> delete(key));
|
||||
this.boards.clear();
|
||||
for(Player player : Bukkit.getOnlinePlayers())
|
||||
this.scoreboard.toggle(player);
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
this.scoreboard.toggle(player, p -> {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -204,15 +232,12 @@ public class ScoreBoardManager extends ZUtils {
|
||||
public void setDefaultScoreboard() {
|
||||
if (this.scoreboard == null) {
|
||||
this.scoreboard = new Scoreboard() {
|
||||
|
||||
@Override
|
||||
public void toggle(Player player) {
|
||||
|
||||
public void toggle(Player player, Consumer<Player> after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide(Player player) {
|
||||
|
||||
public void hide(Player player, Consumer<Player> after) {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package fr.maxlego08.zkoth.scoreboard.implementations;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import be.maximvdw.featherboard.api.FeatherBoardAPI;
|
||||
@ -12,13 +14,13 @@ public class FeatherBoardHook implements Scoreboard {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toggle(Player player) {
|
||||
public void toggle(Player player, Consumer<Player> after) {
|
||||
if (!FeatherBoardAPI.isToggled(player))
|
||||
FeatherBoardAPI.toggle(player, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide(Player player) {
|
||||
public void hide(Player player, Consumer<Player> after) {
|
||||
if (FeatherBoardAPI.isToggled(player))
|
||||
FeatherBoardAPI.toggle(player, true);
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package fr.maxlego08.zkoth.scoreboard.implementations;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import fr.maxlego08.zkoth.api.Scoreboard;
|
||||
import fr.maxlego08.zkoth.zcore.ZPlugin;
|
||||
import me.neznamy.tab.api.TABAPI;
|
||||
import me.neznamy.tab.api.TabPlayer;
|
||||
|
||||
public class TabPremiumHook implements Scoreboard {
|
||||
|
||||
@Override
|
||||
public void toggle(Player player, Consumer<Player> after) {
|
||||
TabPlayer tabPlayer = TABAPI.getPlayer(player.getUniqueId());
|
||||
System.out.println(tabPlayer);
|
||||
if (tabPlayer != null && !tabPlayer.isScoreboardVisible())
|
||||
tabPlayer.toggleScoreboard(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide(Player player, Consumer<Player> after) {
|
||||
TabPlayer tabPlayer = TABAPI.getPlayer(player.getUniqueId());
|
||||
if (tabPlayer != null && tabPlayer.isScoreboardVisible())
|
||||
tabPlayer.toggleScoreboard(false);
|
||||
else
|
||||
Bukkit.getScheduler().runTaskLater(ZPlugin.z(), () -> {
|
||||
final TabPlayer tabPlayer2 = TABAPI.getPlayer(player.getUniqueId());
|
||||
if (tabPlayer2 != null && tabPlayer2.isScoreboardVisible()) {
|
||||
tabPlayer2.toggleScoreboard(false);
|
||||
if (after != null)
|
||||
after.accept(player);
|
||||
}
|
||||
}, 20);
|
||||
}
|
||||
|
||||
}
|
@ -5,6 +5,7 @@ public enum Plugins {
|
||||
VAULT("Vault"),
|
||||
ESSENTIALS("Essentials"),
|
||||
FEATHERBOARD("FeatherBoard"),
|
||||
TAB("TAB"),
|
||||
|
||||
;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user