mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2025-02-16 12:21:30 +01:00
Use PlayerCollection
This commit is contained in:
parent
4aa23b04c3
commit
b79d7f91c6
@ -68,7 +68,7 @@ Building DungeonsXL from source requires [Apache Maven](https://maven.apache.org
|
||||
Maven automatically fetches all dependencies and builds DungeonsXL; just run _build.bat_ or enter the command _mvn clean install_.
|
||||
|
||||
#### DRECommons
|
||||
[DRECommons](https://github.com/DRE2N/DRECommons) is a util library for common tasks. DungeonsXL contains BRCommons 3.1.1.
|
||||
[DRECommons](https://github.com/DRE2N/DRECommons) is a util library for common tasks. DungeonsXL contains BRCommons 3.1.2.
|
||||
|
||||
#### Caliburn API
|
||||
[Caliburn](https://github.com/DRE2N/CaliburnAPI) is an API to read custom items and mobs from config files. DungeonsXL contains Caliburn Beta 0.3.
|
||||
|
4
pom.xml
4
pom.xml
@ -65,7 +65,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.12-R0.1-SNAPSHOT</version>
|
||||
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -77,7 +77,7 @@
|
||||
<dependency>
|
||||
<groupId>io.github.dre2n</groupId>
|
||||
<artifactId>commons</artifactId>
|
||||
<version>3.1.1</version>
|
||||
<version>3.1.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.dre2n</groupId>
|
||||
|
@ -429,8 +429,8 @@ public class Announcer {
|
||||
} else if (dGroup != null) {
|
||||
name = ChatColor.AQUA + dGroup.getName();
|
||||
playerCount = dGroup.getPlayers().size();
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
lore.add((dGroup.getCaptain() == player ? ChatColor.GOLD : ChatColor.GRAY) + player.getName());
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
lore.add((dGroup.getCaptain().equals(player) ? ChatColor.GOLD : ChatColor.GRAY) + player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class AnnouncerStartGameTask extends BukkitRunnable {
|
||||
if (dGroup == null) {
|
||||
continue;
|
||||
}
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
players.add(player);
|
||||
}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ public class EnterCommand extends DRECommand {
|
||||
game.addDGroup(joining);
|
||||
joining.sendMessage(DMessage.CMD_ENTER_SUCCESS.getMessage(joining.getName(), target.getName()));
|
||||
|
||||
for (Player player : joining.getPlayers()) {
|
||||
for (Player player : joining.getPlayers().getOnlinePlayers()) {
|
||||
DGamePlayer.create(player, game.getWorld(), game.getType());
|
||||
}
|
||||
}
|
||||
|
@ -254,9 +254,9 @@ public class GroupCommand extends DRECommand {
|
||||
|
||||
MessageUtil.sendCenteredMessage(sender, "&4&l[ &6" + dGroup.getName() + " &4&l]");
|
||||
MessageUtil.sendMessage(sender, "&bCaptain: &e" + dGroup.getCaptain().getName());
|
||||
String players = "";
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
players += (player == dGroup.getPlayers().get(0) ? "" : "&b, &e") + player.getName();
|
||||
String players = new String();
|
||||
for (String player : dGroup.getPlayers().getNames()) {
|
||||
players += (players.isEmpty() ? "" : "&b, &e") + player;
|
||||
}
|
||||
MessageUtil.sendMessage(sender, "&bPlayers: &e" + players);
|
||||
MessageUtil.sendMessage(sender, "&bDungeon: &e" + (dGroup.getDungeonName() == null ? "N/A" : dGroup.getDungeonName()));
|
||||
|
@ -88,7 +88,7 @@ public class PlayCommand extends DRECommand {
|
||||
dGroup.setDungeon(dungeon);
|
||||
|
||||
new Game(dGroup, dungeon.getMap());
|
||||
for (Player groupPlayer : dGroup.getPlayers()) {
|
||||
for (Player groupPlayer : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
DGamePlayer.create(groupPlayer, dGroup.getGameWorld());
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public class TestCommand extends DRECommand {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Player groupPlayer : dGroup.getPlayers()) {
|
||||
for (Player groupPlayer : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
DGamePlayer.getByPlayer(groupPlayer).ready(GameTypeDefault.TEST);
|
||||
}
|
||||
|
||||
|
@ -377,7 +377,7 @@ public class Game {
|
||||
public Set<Player> getPlayers() {
|
||||
Set<Player> toReturn = new HashSet<>();
|
||||
for (DGroup dGroup : dGroups) {
|
||||
toReturn.addAll(dGroup.getPlayers());
|
||||
toReturn.addAll(dGroup.getPlayers().getOnlinePlayers());
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
@ -168,7 +168,7 @@ public class GroupSign extends GlobalProtection {
|
||||
int j = 1;
|
||||
Sign rowSign = sign;
|
||||
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
if (j > 3) {
|
||||
j = 0;
|
||||
rowSign = (Sign) sign.getBlock().getRelative(0, -1, 0).getState();
|
||||
|
@ -534,26 +534,33 @@ public class DGamePlayer extends DInstancePlayer {
|
||||
}*/
|
||||
|
||||
// Give secure objects to other players
|
||||
int i = 0;
|
||||
Player groupPlayer;
|
||||
do {
|
||||
groupPlayer = dGroup.getPlayers().get(i);
|
||||
if (groupPlayer != null) {
|
||||
for (ItemStack itemStack : getPlayer().getInventory()) {
|
||||
if (itemStack != null) {
|
||||
if (gameWorld.getSecureObjects().contains(itemStack)) {
|
||||
groupPlayer.getInventory().addItem(itemStack);
|
||||
}
|
||||
Player groupPlayer = null;
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
if (player.isOnline()) {
|
||||
groupPlayer = player;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (groupPlayer != null) {
|
||||
for (ItemStack itemStack : getPlayer().getInventory()) {
|
||||
if (itemStack != null) {
|
||||
if (gameWorld.getSecureObjects().contains(itemStack)) {
|
||||
groupPlayer.getInventory().addItem(itemStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
i++;
|
||||
} while (groupPlayer == null);
|
||||
}
|
||||
}
|
||||
|
||||
if (dGroup.getCaptain().equals(getPlayer()) && dGroup.getPlayers().size() > 0) {
|
||||
// Captain here!
|
||||
Player newCaptain = dGroup.getPlayers().get(0);
|
||||
Player newCaptain = null;
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
if (player.isOnline()) {
|
||||
newCaptain = player;
|
||||
break;
|
||||
}
|
||||
}
|
||||
dGroup.setCaptain(newCaptain);
|
||||
if (message) {
|
||||
MessageUtil.sendMessage(newCaptain, DMessage.PLAYER_NEW_CAPTAIN.getMessage());
|
||||
|
@ -20,6 +20,7 @@ import io.github.dre2n.commons.chat.MessageUtil;
|
||||
import io.github.dre2n.commons.compatibility.CompatibilityHandler;
|
||||
import io.github.dre2n.commons.compatibility.Version;
|
||||
import io.github.dre2n.commons.player.PlayerUtil;
|
||||
import io.github.dre2n.commons.player.PlayerWrapper;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.config.DMessage;
|
||||
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent;
|
||||
@ -28,6 +29,7 @@ import io.github.dre2n.dungeonsxl.global.DPortal;
|
||||
import io.github.dre2n.dungeonsxl.world.DGameWorld;
|
||||
import io.github.dre2n.dungeonsxl.world.DResourceWorld;
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -39,7 +41,7 @@ import org.bukkit.potion.PotionEffect;
|
||||
*
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DGlobalPlayer {
|
||||
public class DGlobalPlayer implements PlayerWrapper {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@ -86,20 +88,21 @@ public class DGlobalPlayer {
|
||||
}
|
||||
|
||||
/* Getters and setters */
|
||||
/**
|
||||
* @return the player's name
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return player.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the Bukkit player
|
||||
*/
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getUniqueId() {
|
||||
return player.getUniqueId();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the saved data
|
||||
*/
|
||||
|
@ -18,6 +18,7 @@ package io.github.dre2n.dungeonsxl.player;
|
||||
|
||||
import io.github.dre2n.commons.chat.MessageUtil;
|
||||
import io.github.dre2n.commons.misc.NumberUtil;
|
||||
import io.github.dre2n.commons.player.PlayerCollection;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.config.DMessage;
|
||||
import io.github.dre2n.dungeonsxl.dungeon.Dungeon;
|
||||
@ -42,6 +43,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -59,8 +61,8 @@ public class DGroup {
|
||||
|
||||
private String name;
|
||||
private UUID captain;
|
||||
private List<UUID> players = new ArrayList<>();
|
||||
private List<UUID> invitedPlayers = new ArrayList<>();
|
||||
private PlayerCollection players = new PlayerCollection();
|
||||
private PlayerCollection invitedPlayers = new PlayerCollection();
|
||||
private Dungeon dungeon;
|
||||
private List<DResourceWorld> unplayedFloors = new ArrayList<>();
|
||||
private DGameWorld gameWorld;
|
||||
@ -203,23 +205,19 @@ public class DGroup {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the players as a Set<Player>
|
||||
* @return the players
|
||||
*/
|
||||
public List<Player> getPlayers() {
|
||||
List<Player> players = new ArrayList<>();
|
||||
for (UUID uuid : this.players) {
|
||||
players.add(Bukkit.getPlayer(uuid));
|
||||
}
|
||||
public PlayerCollection getPlayers() {
|
||||
return players;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the players as a Set<DGlobalPlayer>
|
||||
*/
|
||||
public List<DGlobalPlayer> getDGlobalPlayers() {
|
||||
List<DGlobalPlayer> players = new ArrayList<>();
|
||||
for (UUID uuid : this.players) {
|
||||
players.add(dPlayers.getByPlayer(Bukkit.getPlayer(uuid)));
|
||||
public Set<DGlobalPlayer> getDGlobalPlayers() {
|
||||
Set<DGlobalPlayer> players = new HashSet<>();
|
||||
for (UUID uuid : this.players.getUniqueIds()) {
|
||||
players.add(dPlayers.getByUniqueId(uuid));
|
||||
}
|
||||
return players;
|
||||
}
|
||||
@ -227,10 +225,10 @@ public class DGroup {
|
||||
/**
|
||||
* @return the players as a Set<DGamePlayer>
|
||||
*/
|
||||
public List<DGamePlayer> getDGamePlayers() {
|
||||
List<DGamePlayer> players = new ArrayList<>();
|
||||
for (UUID uuid : this.players) {
|
||||
DGlobalPlayer dPlayer = dPlayers.getByPlayer(Bukkit.getPlayer(uuid));
|
||||
public Set<DGamePlayer> getDGamePlayers() {
|
||||
Set<DGamePlayer> players = new HashSet<>();
|
||||
for (UUID uuid : this.players.getUniqueIds()) {
|
||||
DGlobalPlayer dPlayer = dPlayers.getByUniqueId(uuid);
|
||||
if (dPlayer instanceof DGamePlayer) {
|
||||
players.add((DGamePlayer) dPlayer);
|
||||
}
|
||||
@ -305,13 +303,8 @@ public class DGroup {
|
||||
/**
|
||||
* @return the players
|
||||
*/
|
||||
public List<Player> getInvitedPlayers() {
|
||||
ArrayList<Player> players = new ArrayList<>();
|
||||
for (UUID uuid : invitedPlayers) {
|
||||
players.add(Bukkit.getPlayer(uuid));
|
||||
}
|
||||
|
||||
return players;
|
||||
public PlayerCollection getInvitedPlayers() {
|
||||
return invitedPlayers;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -365,7 +358,7 @@ public class DGroup {
|
||||
|
||||
// Send message
|
||||
if (!silent) {
|
||||
for (Player groupPlayer : getPlayers()) {
|
||||
for (Player groupPlayer : players.getOnlinePlayers()) {
|
||||
MessageUtil.sendMessage(groupPlayer, DungeonsXL.getInstance().getMessageConfig().getMessage(DMessage.GROUP_UNINVITED_PLAYER, getCaptain().getName(), player.getName(), name));
|
||||
}
|
||||
}
|
||||
@ -378,13 +371,11 @@ public class DGroup {
|
||||
*/
|
||||
public void clearOfflineInvitedPlayers() {
|
||||
ArrayList<UUID> toRemove = new ArrayList<>();
|
||||
|
||||
for (UUID uuid : invitedPlayers) {
|
||||
for (UUID uuid : invitedPlayers.getUniqueIds()) {
|
||||
if (Bukkit.getPlayer(uuid) == null) {
|
||||
toRemove.add(uuid);
|
||||
}
|
||||
}
|
||||
|
||||
invitedPlayers.removeAll(toRemove);
|
||||
}
|
||||
|
||||
@ -565,7 +556,7 @@ public class DGroup {
|
||||
* @return whether there are players in the group
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return players.isEmpty();
|
||||
return players.size() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -773,7 +764,7 @@ public class DGroup {
|
||||
}
|
||||
|
||||
boolean ready = true;
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
DGamePlayer dPlayer = DGamePlayer.getByPlayer(player);
|
||||
if (dPlayer == null) {
|
||||
dPlayer = new DGamePlayer(player, gameWorld);
|
||||
@ -808,7 +799,7 @@ public class DGroup {
|
||||
|
||||
floorCount++;
|
||||
|
||||
for (Player player : getPlayers()) {
|
||||
for (Player player : players.getOnlinePlayers()) {
|
||||
DGamePlayer dPlayer = DGamePlayer.getByPlayer(player);
|
||||
if (dPlayer == null) {
|
||||
continue;
|
||||
@ -910,7 +901,7 @@ public class DGroup {
|
||||
* Send a message to all players in the group
|
||||
*/
|
||||
public void sendMessage(String message) {
|
||||
for (Player player : getPlayers()) {
|
||||
for (Player player : players.getOnlinePlayers()) {
|
||||
if (player.isOnline()) {
|
||||
MessageUtil.sendMessage(player, message);
|
||||
}
|
||||
@ -925,7 +916,7 @@ public class DGroup {
|
||||
*/
|
||||
public void sendMessage(String message, Player... except) {
|
||||
HashSet<Player> exceptSet = new HashSet<>(Arrays.asList(except));
|
||||
for (Player player : getPlayers()) {
|
||||
for (Player player : players.getOnlinePlayers()) {
|
||||
if (player.isOnline() && !exceptSet.contains(player)) {
|
||||
MessageUtil.sendMessage(player, message);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.config.MainConfig;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -60,10 +61,21 @@ public class DPlayerCache {
|
||||
return dGlobalPlayer;
|
||||
}
|
||||
}
|
||||
|
||||
return new DGlobalPlayer(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the DGlobalPlayer which represents the player with this UUID
|
||||
*/
|
||||
public DGlobalPlayer getByUniqueId(UUID uuid) {
|
||||
for (DGlobalPlayer dGlobalPlayer : dGlobalPlayers) {
|
||||
if (dGlobalPlayer.getUniqueId().equals(uuid)) {
|
||||
return dGlobalPlayer;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the dGlobalPlayers
|
||||
*/
|
||||
|
@ -57,7 +57,7 @@ public class TimeIsRunningTask extends BukkitRunnable {
|
||||
color = ChatColor.DARK_RED.toString();
|
||||
|
||||
} finally {
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
MessageUtil.sendActionBarMessage(player, DMessage.PLAYER_TIME_LEFT.getMessage(color, String.valueOf(timeLeft)));
|
||||
|
||||
DGamePlayer dPlayer = DGamePlayer.getByPlayer(player);
|
||||
|
@ -192,7 +192,7 @@ public class RewardChest extends GameBlock {
|
||||
}
|
||||
}
|
||||
|
||||
for (Player player : dGroup.getPlayers()) {
|
||||
for (Player player : dGroup.getPlayers().getOnlinePlayers()) {
|
||||
DGamePlayer dPlayer = DGamePlayer.getByPlayer(player);
|
||||
if (dPlayer == null) {
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user