uhhh
This commit is contained in:
@ -1,43 +1,56 @@
|
||||
package rip.tilly.bedwars.managers;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.game.Game;
|
||||
import rip.tilly.bedwars.game.GameRequest;
|
||||
import rip.tilly.bedwars.game.GameTeam;
|
||||
import rip.tilly.bedwars.game.*;
|
||||
import rip.tilly.bedwars.game.arena.Arena;
|
||||
import rip.tilly.bedwars.game.events.GameEndEvent;
|
||||
import rip.tilly.bedwars.game.events.GameStartEvent;
|
||||
import rip.tilly.bedwars.player.PlayerData;
|
||||
import rip.tilly.bedwars.events.GameEndEvent;
|
||||
import rip.tilly.bedwars.events.GameStartEvent;
|
||||
import rip.tilly.bedwars.managers.hotbar.impl.HotbarItem;
|
||||
import rip.tilly.bedwars.playerdata.PlayerData;
|
||||
import rip.tilly.bedwars.playerdata.PlayerState;
|
||||
import rip.tilly.bedwars.utils.ItemBuilder;
|
||||
import rip.tilly.bedwars.utils.PlayerUtil;
|
||||
import rip.tilly.bedwars.utils.TtlHashMap;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
public class GameManager {
|
||||
|
||||
private final BedWars plugin = BedWars.getInstance();
|
||||
|
||||
private final Map<UUID, Set<GameRequest>> gameRequests = new TtlHashMap<>(TimeUnit.SECONDS, 30);
|
||||
private final Map<UUID, UUID> spectators = new ConcurrentHashMap<>();
|
||||
@Getter private final Map<UUID, Game> games = new ConcurrentHashMap<>();
|
||||
|
||||
public int getFighters() {
|
||||
public int getPlaying() {
|
||||
int i = 0;
|
||||
for (Game game : this.games.values()) {
|
||||
for (GameTeam team : game.getTeams()) {
|
||||
i += team.getPlayingPlayers().size();
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
public int getPlayingByType(GameType gameType) {
|
||||
int i = 0;
|
||||
for (Game game : this.games.values()) {
|
||||
if (game.getGameType() == gameType) {
|
||||
for (GameTeam teams : game.getTeams()) {
|
||||
i += teams.getPlayingPlayers().size();
|
||||
}
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
@ -80,9 +93,29 @@ public class GameManager {
|
||||
this.games.remove(game.getGameId());
|
||||
}
|
||||
|
||||
public void removePlayerFromGame(Player player, PlayerData playerData) {
|
||||
public void addDroppedItem(Game game, Item item) {
|
||||
game.addEntityToRemove(item);
|
||||
game.addRunnable(this.plugin.getServer().getScheduler().runTaskLater(this.plugin, () -> {
|
||||
game.removeEntityToRemove(item);
|
||||
item.remove();
|
||||
}, 100L).getTaskId());
|
||||
}
|
||||
|
||||
public void addDroppedItems(Game game, Set<Item> items) {
|
||||
for (Item item : items) {
|
||||
game.addEntityToRemove(item);
|
||||
}
|
||||
game.addRunnable(this.plugin.getServer().getScheduler().runTaskLater(this.plugin, () -> {
|
||||
for (Item item : items) {
|
||||
game.removeEntityToRemove(item);
|
||||
item.remove();
|
||||
}
|
||||
}, 100L).getTaskId());
|
||||
}
|
||||
|
||||
public void removePlayerFromGame(Player player, PlayerData playerData, boolean spectatorDeath) {
|
||||
Game game = this.games.get(playerData.getCurrentGameId());
|
||||
Player killer = player.getKiller();
|
||||
Player killer = playerData.getLastDamager();
|
||||
|
||||
if (player.isOnline() && killer != null) {
|
||||
killer.hidePlayer(player);
|
||||
@ -93,15 +126,109 @@ public class GameManager {
|
||||
|
||||
if (killer != null) {
|
||||
game.broadcast(losingTeam.getPlayerTeam().getChatColor() + player.getName() + " &ehas been killed by " + winningTeam.getPlayerTeam().getChatColor() + killer.getName() + "&e! &b&lFINAL KILL!");
|
||||
PlayerData killerData = this.plugin.getPlayerDataManager().getPlayerData(killer.getUniqueId());
|
||||
killerData.setKills(killerData.getKills() + 1);
|
||||
} else {
|
||||
game.broadcast(losingTeam.getPlayerTeam().getChatColor() + player.getName() + " &ehas died! &b&lFINAL KILL!");
|
||||
}
|
||||
|
||||
losingTeam.killPlayer(player.getUniqueId());
|
||||
int remaining = losingTeam.getPlayingPlayers().size();
|
||||
playerData.setDeaths(playerData.getDeaths() + 1);
|
||||
|
||||
losingTeam.killPlayer(player.getUniqueId());
|
||||
|
||||
if (spectatorDeath) {
|
||||
this.addSpectatorDeath(player, playerData, game);
|
||||
}
|
||||
|
||||
int remaining = losingTeam.getPlayingPlayers().size();
|
||||
if (remaining == 0) {
|
||||
this.plugin.getServer().getPluginManager().callEvent(new GameEndEvent(game, winningTeam, losingTeam));
|
||||
}
|
||||
}
|
||||
|
||||
private void addSpectatorDeath(Player player, PlayerData playerData, Game game) {
|
||||
this.spectators.put(player.getUniqueId(), game.getGameId());
|
||||
playerData.setPlayerState(PlayerState.SPECTATING);
|
||||
PlayerUtil.clearPlayer(player);
|
||||
game.addSpectator(player.getUniqueId());
|
||||
game.addRunnable(this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> {
|
||||
game.getTeams().forEach(team -> team.playingPlayers().forEach(member -> member.hidePlayer(player)));
|
||||
game.spectatorPlayers().forEach(spectator -> spectator.hidePlayer(player));
|
||||
player.getActivePotionEffects().stream().map(PotionEffect::getType).forEach(player::removePotionEffect);
|
||||
player.setWalkSpeed(0.2F);
|
||||
player.setFlySpeed(0.4F);
|
||||
player.setAllowFlight(true);
|
||||
}, 20L));
|
||||
|
||||
player.setWalkSpeed(0.0F);
|
||||
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 10000, -5));
|
||||
|
||||
this.plugin.getHotbarManager().getSpectatorItems().stream().filter(HotbarItem::isEnabled).forEach(item -> player.getInventory().setItem(item.getSlot(), item.getItemStack()));
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
public void addSpectator(Player player, PlayerData playerData, Player target, Game targetGame) {
|
||||
this.spectators.put(player.getUniqueId(), targetGame.getGameId());
|
||||
|
||||
if (targetGame.getGameState() != GameState.ENDING) {
|
||||
targetGame.broadcast("&d" + player.getName() + " &eis now spectating!");
|
||||
}
|
||||
|
||||
targetGame.addSpectator(player.getUniqueId());
|
||||
playerData.setPlayerState(PlayerState.SPECTATING);
|
||||
|
||||
player.teleport(target);
|
||||
player.setAllowFlight(true);
|
||||
player.setFlying(true);
|
||||
|
||||
player.getInventory().clear();
|
||||
this.plugin.getHotbarManager().getSpectatorItems().stream().filter(HotbarItem::isEnabled).forEach(item -> player.getInventory().setItem(item.getSlot(), item.getItemStack()));
|
||||
player.updateInventory();
|
||||
|
||||
this.plugin.getServer().getOnlinePlayers().forEach(online -> {
|
||||
online.hidePlayer(player);
|
||||
player.hidePlayer(online);
|
||||
});
|
||||
|
||||
targetGame.getTeams().forEach(team -> team.playingPlayers().forEach(player::showPlayer));
|
||||
}
|
||||
|
||||
public void removeSpectator(Player player) {
|
||||
Game game = this.games.get(this.spectators.get(player.getUniqueId()));
|
||||
game.removeSpectator(player.getUniqueId());
|
||||
|
||||
if (game.getGameState() != GameState.ENDING) {
|
||||
game.broadcast("&d" + player.getName() + " &eis no longer spectating!");
|
||||
}
|
||||
|
||||
this.spectators.remove(player.getUniqueId());
|
||||
this.plugin.getPlayerDataManager().resetPlayer(player, true);
|
||||
}
|
||||
|
||||
public List<ItemStack> getGameItems() {
|
||||
List<ItemStack> allItems = new ArrayList<>();
|
||||
|
||||
ItemStack sword = new ItemBuilder(Material.WOOD_SWORD).build();
|
||||
allItems.add(sword);
|
||||
|
||||
return allItems;
|
||||
}
|
||||
|
||||
public ItemStack[] getGameArmor(PlayerData playerData) {
|
||||
Color color = playerData.getPlayerTeam().getColor();
|
||||
|
||||
return new ItemStack[] {
|
||||
new ItemBuilder(Material.LEATHER_BOOTS).color(color).build(),
|
||||
new ItemBuilder(Material.LEATHER_LEGGINGS).color(color).build(),
|
||||
new ItemBuilder(Material.LEATHER_CHESTPLATE).color(color).build(),
|
||||
new ItemBuilder(Material.LEATHER_HELMET).color(color).build()
|
||||
};
|
||||
}
|
||||
|
||||
public void clearBlocks(Game game) {
|
||||
game.getPlacedBlocksLocations().forEach(location -> {
|
||||
location.getBlock().setType(Material.AIR);
|
||||
game.removePlacedBlock(location.getBlock());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -8,8 +8,8 @@ import org.bson.Document;
|
||||
import org.bukkit.entity.Player;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.managers.hotbar.impl.HotbarItem;
|
||||
import rip.tilly.bedwars.player.PlayerData;
|
||||
import rip.tilly.bedwars.player.PlayerState;
|
||||
import rip.tilly.bedwars.playerdata.PlayerData;
|
||||
import rip.tilly.bedwars.playerdata.PlayerState;
|
||||
import rip.tilly.bedwars.utils.PlayerUtil;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -17,10 +17,6 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
public class PlayerDataManager {
|
||||
|
||||
@Getter private final Map<UUID, PlayerData> players = new HashMap<>();
|
||||
|
@ -8,10 +8,6 @@ import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.utils.CC;
|
||||
import rip.tilly.bedwars.utils.CustomLocation;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class SpawnManager {
|
||||
|
@ -14,10 +14,6 @@ import rip.tilly.bedwars.utils.config.file.Config;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
public class ArenaManager {
|
||||
|
||||
private final BedWars plugin = BedWars.getInstance();
|
||||
|
@ -7,10 +7,6 @@ import rip.tilly.bedwars.game.arena.Arena;
|
||||
import rip.tilly.bedwars.game.arena.CopiedArena;
|
||||
import rip.tilly.bedwars.utils.CustomLocation;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
public class ChunkManager {
|
||||
|
||||
private final BedWars plugin = BedWars.getInstance();
|
||||
|
@ -9,10 +9,6 @@ import rip.tilly.bedwars.utils.ItemUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
@Getter
|
||||
public class HotbarManager {
|
||||
|
||||
|
@ -1,9 +1,5 @@
|
||||
package rip.tilly.bedwars.managers.hotbar.impl;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
public enum ActionType {
|
||||
|
||||
QUEUE_MENU,
|
||||
|
@ -7,10 +7,6 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class HotbarItem {
|
||||
|
@ -16,10 +16,6 @@ import rip.tilly.bedwars.utils.config.file.Config;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* Created by Lucanius
|
||||
* Project: BedWars
|
||||
*/
|
||||
@Getter
|
||||
public class MongoManager {
|
||||
|
||||
|
@ -5,8 +5,7 @@ import lombok.Setter;
|
||||
import org.bukkit.entity.Player;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.game.GameTeam;
|
||||
import rip.tilly.bedwars.player.PlayerTeam;
|
||||
import sun.misc.UUDecoder;
|
||||
import rip.tilly.bedwars.playerdata.PlayerTeam;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
@ -4,8 +4,8 @@ import lombok.Getter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.player.PlayerData;
|
||||
import rip.tilly.bedwars.player.PlayerState;
|
||||
import rip.tilly.bedwars.playerdata.PlayerData;
|
||||
import rip.tilly.bedwars.playerdata.PlayerState;
|
||||
import rip.tilly.bedwars.utils.CC;
|
||||
import rip.tilly.bedwars.utils.Clickable;
|
||||
import rip.tilly.bedwars.utils.TtlHashMap;
|
||||
@ -75,6 +75,11 @@ public class PartyManager {
|
||||
}
|
||||
|
||||
public void createParty(Player player) {
|
||||
if (this.getParty(player.getUniqueId()) != null) {
|
||||
player.sendMessage(CC.translate("&cYou are already in a party!"));
|
||||
return;
|
||||
}
|
||||
|
||||
Party party = new Party(player.getUniqueId());
|
||||
this.parties.put(player.getUniqueId(), party);
|
||||
this.plugin.getPlayerDataManager().resetPlayer(player, false);
|
||||
@ -101,6 +106,14 @@ public class PartyManager {
|
||||
|
||||
public void joinParty(UUID leader, Player player) {
|
||||
Party party = this.getParty(leader);
|
||||
if (party == null) {
|
||||
player.sendMessage(CC.translate("&cThis party doesn't exist!"));
|
||||
return;
|
||||
}
|
||||
if (!this.hasPartyInvite(player.getUniqueId(), leader)) {
|
||||
player.sendMessage(CC.translate("&cYou have no pending invites!"));
|
||||
return;
|
||||
}
|
||||
this.partyLeaders.put(player.getUniqueId(), leader);
|
||||
party.addMember(player.getUniqueId());
|
||||
this.plugin.getPlayerDataManager().resetPlayer(player, false);
|
||||
@ -110,6 +123,7 @@ public class PartyManager {
|
||||
public void leaveParty(Player player) {
|
||||
Party party = this.getParty(player.getUniqueId());
|
||||
if (party == null) {
|
||||
player.sendMessage(CC.translate("&cYou are not in a party!"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -124,7 +138,7 @@ public class PartyManager {
|
||||
|
||||
switch (playerData.getPlayerState()) {
|
||||
case PLAYING:
|
||||
this.plugin.getGameManager().removePlayerFromGame(player, playerData);
|
||||
this.plugin.getGameManager().removePlayerFromGame(player, playerData, false);
|
||||
break;
|
||||
case SPECTATING:
|
||||
// this.plugin.getGameManager().removeSpectator(player);
|
||||
|
@ -0,0 +1,12 @@
|
||||
package rip.tilly.bedwars.managers.queue;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import rip.tilly.bedwars.game.GameType;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public class QueueEntry {
|
||||
|
||||
private final GameType gameType;
|
||||
}
|
148
src/main/java/rip/tilly/bedwars/managers/queue/QueueManager.java
Normal file
148
src/main/java/rip/tilly/bedwars/managers/queue/QueueManager.java
Normal file
@ -0,0 +1,148 @@
|
||||
package rip.tilly.bedwars.managers.queue;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.game.Game;
|
||||
import rip.tilly.bedwars.game.GameTeam;
|
||||
import rip.tilly.bedwars.game.GameType;
|
||||
import rip.tilly.bedwars.game.arena.Arena;
|
||||
import rip.tilly.bedwars.managers.hotbar.impl.HotbarItem;
|
||||
import rip.tilly.bedwars.playerdata.PlayerData;
|
||||
import rip.tilly.bedwars.playerdata.PlayerState;
|
||||
import rip.tilly.bedwars.playerdata.PlayerTeam;
|
||||
import rip.tilly.bedwars.utils.CC;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class QueueManager {
|
||||
|
||||
private final BedWars plugin = BedWars.getInstance();
|
||||
private final Map<UUID, QueueEntry> queued = new ConcurrentHashMap<>();
|
||||
private final Map<UUID, Long> queueTime = new HashMap<>();
|
||||
|
||||
public QueueManager() {
|
||||
this.plugin.getServer().getScheduler().runTaskTimer(this.plugin, () -> this.queued.forEach((key, value) -> {
|
||||
this.findMatch(this.plugin.getServer().getPlayer(key), value.getGameType());
|
||||
}), 20, 20);
|
||||
}
|
||||
|
||||
public void addPlayerToQueue(Player player, PlayerData playerData, GameType gameType) {
|
||||
playerData.setPlayerState(PlayerState.QUEUE);
|
||||
|
||||
QueueEntry queueEntry = new QueueEntry(gameType);
|
||||
this.queued.put(playerData.getUniqueId(), queueEntry);
|
||||
this.giveQueueItems(player);
|
||||
|
||||
player.sendMessage(" ");
|
||||
player.sendMessage(CC.translate("&d&l" + gameType.getName() + " Queue"));
|
||||
player.sendMessage(CC.translate("&7&oSearching for a game..."));
|
||||
player.sendMessage(" ");
|
||||
|
||||
this.queueTime.put(player.getUniqueId(), System.currentTimeMillis());
|
||||
}
|
||||
|
||||
public void removePlayerFromQueue(Player player) {
|
||||
if (player == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
QueueEntry entry = this.queued.get(player.getUniqueId());
|
||||
if (entry == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.plugin.getPlayerDataManager().resetPlayer(player, false);
|
||||
this.queued.remove(player.getUniqueId());
|
||||
|
||||
player.sendMessage(CC.translate("&cYou have left the queue!"));
|
||||
}
|
||||
|
||||
private void findMatch(Player player, GameType gameType) {
|
||||
if (player == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerData playerData = this.plugin.getPlayerDataManager().getPlayerData(player.getUniqueId());
|
||||
if (playerData == null) {
|
||||
this.plugin.getLogger().warning(player.getName() + "'s player data is null");
|
||||
return;
|
||||
}
|
||||
|
||||
for (UUID opponent : this.queued.keySet()) {
|
||||
if (opponent == player.getUniqueId()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
QueueEntry queueEntry = this.queued.get(opponent);
|
||||
if (queueEntry.getGameType() != gameType) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Player opponentPlayer = Bukkit.getPlayer(opponent);
|
||||
|
||||
List<UUID> playersA = new ArrayList<>();
|
||||
List<UUID> playersB = new ArrayList<>();
|
||||
|
||||
playersA.add(player.getUniqueId());
|
||||
playersB.add(opponent);
|
||||
|
||||
GameTeam teamA = new GameTeam(player.getUniqueId(), playersA, 0, PlayerTeam.RED);
|
||||
GameTeam teamB = new GameTeam(player.getUniqueId(), playersB, 1, PlayerTeam.LIME);
|
||||
|
||||
Arena arena = this.plugin.getArenaManager().getRandomArena();
|
||||
|
||||
if (this.getQueueSizeByType(gameType) >= gameType.getQueueAmount()) {
|
||||
|
||||
player.sendMessage(" ");
|
||||
player.sendMessage(CC.translate("&aGame found!"));
|
||||
player.sendMessage(CC.translate("&7⚫ &fOpponent: &d" + opponentPlayer.getName()));
|
||||
//player.sendMessage(CC.translate("&7⚫ &fArena: &d" + arena.getName()));
|
||||
player.sendMessage(CC.translate("&7⚫ &fGame: &d" + gameType.getName()));
|
||||
player.sendMessage(" ");
|
||||
|
||||
opponentPlayer.sendMessage(" ");
|
||||
opponentPlayer.sendMessage(CC.translate("&aGame found!"));
|
||||
opponentPlayer.sendMessage(CC.translate("&7⚫ &fOpponent: &d" + player.getName()));
|
||||
//opponentPlayer.sendMessage(CC.translate("&7⚫ &fArena: &d" + arena.getName()));
|
||||
opponentPlayer.sendMessage(CC.translate("&7⚫ &fGame: &d" + gameType.getName()));
|
||||
opponentPlayer.sendMessage(" ");
|
||||
|
||||
Game game = new Game(arena, gameType, teamA, teamB);
|
||||
this.plugin.getGameManager().createGame(game);
|
||||
|
||||
this.queued.remove(player.getUniqueId());
|
||||
this.queued.remove(opponentPlayer.getUniqueId());
|
||||
|
||||
this.queueTime.remove(player.getUniqueId());
|
||||
this.queueTime.remove(opponentPlayer.getUniqueId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void giveQueueItems(Player player) {
|
||||
player.closeInventory();
|
||||
player.getInventory().clear();
|
||||
|
||||
this.plugin.getHotbarManager().getQueueItems().stream().filter(HotbarItem::isEnabled).forEach(item -> player.getInventory().setItem(item.getSlot(), item.getItemStack()));
|
||||
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
public QueueEntry getQueueEntry(UUID uuid) {
|
||||
return this.queued.get(uuid);
|
||||
}
|
||||
|
||||
public long getPlayerQueueTime(UUID uuid) {
|
||||
return this.queueTime.get(uuid);
|
||||
}
|
||||
|
||||
public int getQueueSizeByType(GameType type) {
|
||||
return (int) this.queued.entrySet().stream().filter(entry -> entry.getValue().getGameType() == type).count();
|
||||
}
|
||||
|
||||
public int getAllQueueSize() {
|
||||
return this.queued.entrySet().size();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user