package pack.example.lobby;
import be.iammehdib.api.bungee.BungeeServer;
import be.iammehdib.api.inventory.ItemBuilder;
import be.iammehdib.api.inventory.ItemSkull;
import be.iammehdib.api.lobby.LobbyTemplate_1_8;
import be.iammehdib.api.player.profile.PlayerProfile;
import be.iammehdib.api.utils.math.DateUtils;
import be.iammehdib.api.utils.packet.PacketReader;
import be.iammehdib.api.visual.NameTag;
import be.iammehdib.api.visual.board.Board;
import be.iammehdib.api.visual.hologram.Hologram;
import be.iammehdib.api.visual.hologram.HologramClass;
import be.iammehdib.api.visual.npc.NPCMap;
import be.iammehdib.core.UCore;
import be.iammehdib.core.gui.base.ProfilGui;
import be.iammehdib.modules.list.global.GuiModule;
import com.google.common.collect.Maps;
import net.minecraft.server.v1_8_R3.PlayerConnection;
import org.bukkit.*;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.skylymc.lobby.gui.CosmeticsGui;
import org.skylymc.lobby.gui.MainGui;
import org.skylymc.lobby.gui.SettingsGui;
import org.skylymc.lobby.utils.Leaderboard;
import java.util.Arrays;
import java.util.HashMap;
public class MainLobby extends LobbyTemplate_1_8 implements Listener {
int playerLobbysCount = 0;
public MainLobby() {
super(UCore.getInstance(), "Home", new Location(Bukkit.getWorld("hub"), 0.5, 100.0, 0.5, 0.0f, 0.0f));
World world = getSpawnPoint().getWorld();
loadConfigNPC();
new BukkitRunnable() {
public void run() {
updateLobbyPlayers();
}
}.runTaskTimerAsynchronously(getPlugin(), 100, 100);
getHolograms().put("Home", new Hologram().newHologram(new Location(world, 0.5, 101.0, 10.5), Arrays.asList("§c» §c§lSKYLY §c«", "§84 ans d'existence avec vous §c❤", "", "§7Cliquez sur la boussole de §6§lnavigation", "§7pour jouer à nos différents §ajeux §7!", "", "§7Jouez avec vos §damis §7et invitez-les dans votre", "§7groupe avec le §e/party.")));
}
@Override
public void onClickNpc(Player player, NPCMap npc) {
/*if (npc.name.equals("ffa")) {
GuiModule.open(player, new MainGui(player));
}*/
}
@Override
public void onClick(PlayerInteractEvent event) {
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
Player player = event.getPlayer();
player.sendMessage("click Item")
}
@Override
public void onLeave(PlayerProfile player) {
super.onLeave(player);
PacketReader packetReader = new PacketReader();
packetReader.uninject(player.getPlayer());
}
@Override
public void onFirstJoin(PlayerProfile player) {
super.onFirstJoin(player);
player.getPlayer().teleport(getSpawnPoint());
player.getPlayer().setGameMode(GameMode.ADVENTURE);
PacketReader packetReader = new PacketReader();
packetReader.inject(player.getPlayer());
player.getPlayer().sendTitle(" ", " ");
player.getPlayer().sendMessage(" ");
giveItems(player.getPlayer());
NameTag.rankSet(player);
if (player.getClanName() != null)
NameTag.setSuffix(player.getPlayer(), " " + player.getClanName());
giveScoreboardHub(player);
sendWelcomeMessage(player);
getPlugin().getServer().getScheduler().runTaskLater(getPlugin(), () -> {
if (!player.getPlayer().isOnline()) return;
showHolograms(player.getPlayer());
showNpc(player.getPlayer());
}, 5);
}
@Override
public void onJoin(PlayerProfile playerAPI) {
super.onJoin(playerAPI);
Player player = playerAPI.getPlayer();
player.teleport(getSpawnPoint());
player.setGameMode(GameMode.ADVENTURE);
PacketReader packetReader = new PacketReader();
packetReader.inject(player.getPlayer());
player.getPlayer().sendTitle(" ", " ");
giveItems(player);
giveScoreboardHub(playerAPI);
sendWelcomeMessage(playerAPI);
NameTag.rankSet(playerAPI);
if (playerAPI.getClanName() != null)
NameTag.setSuffix(player, " " + playerAPI.getClanName());
getPlugin().getServer().getScheduler().runTaskLater(getPlugin(), () -> {
if (!player.isOnline()) return;
showHolograms(player);
showNpc(player);
}, 10);
}
public void giveItems(Player p) {
p.getInventory().clear();
p.getInventory().setItem(0, new ItemBuilder(Material.COMPASS).setName("§6Main Menu").build());
}
public final void giveScoreboardHub(PlayerProfile playerAPI) {
String clanName = "§7None";
if (playerAPI.getClanName() != null) {
clanName = playerAPI.getClanName();
}
Board.deleteAllLines(playerAPI.getPlayer());
Board.updateBoardTitle(playerAPI.getPlayer(), "§6§lExemple Lobby");
Board.updateBoard(playerAPI.getPlayer(), Arrays.asList(
" §7§m------------------ ",
" §fPlayers: §a" + playerLobbysCount,
" §fRank: " + playerAPI.getPrefix(),
" §fCoins: §6" + playerAPI.getCoins(),
" §fClan: " + clanName,
" ",
" §eplay.skyly.fr",
" §7§m------------------ ")
);
}
public void updateLobbyPlayers() {
this.playerLobbysCount = BungeeServer.getTotalPlayerCount();
for (PlayerProfile playerAPI : getPlayers()) {
Board.updateBoardLine(playerAPI.getPlayer(), " §fPlayers: §a" + playerLobbysCount, 1);
}
}
}
Et dans votre main plugin pour initialiser le lobby vous faites :
LobbyModule.setLobby(new MainLobby());