reformatted project
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
package eu.mhsl.minenet.minigames.instance.room;
|
||||
|
||||
import eu.mhsl.minenet.minigames.Resource;
|
||||
import eu.mhsl.minenet.minigames.instance.Dimension;
|
||||
import eu.mhsl.minenet.minigames.instance.MineNetInstance;
|
||||
import eu.mhsl.minenet.minigames.instance.Spawnable;
|
||||
import eu.mhsl.minenet.minigames.instance.hub.Hub;
|
||||
import eu.mhsl.minenet.minigames.instance.room.entity.GameSelector;
|
||||
import eu.mhsl.minenet.minigames.message.Icon;
|
||||
import eu.mhsl.minenet.minigames.message.type.ChatMessage;
|
||||
import eu.mhsl.minenet.minigames.score.tournament.Tournament;
|
||||
import eu.mhsl.minenet.minigames.util.CommonEventHandles;
|
||||
import eu.mhsl.minenet.minigames.util.MoveInstance;
|
||||
import eu.mhsl.minenet.minigames.instance.Spawnable;
|
||||
import eu.mhsl.minenet.minigames.instance.Dimension;
|
||||
import eu.mhsl.minenet.minigames.instance.hub.Hub;
|
||||
import eu.mhsl.minenet.minigames.instance.room.entity.GameSelector;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.coordinate.Pos;
|
||||
import net.minestom.server.entity.GameMode;
|
||||
@@ -27,6 +27,24 @@ public class Room extends MineNetInstance implements Spawnable {
|
||||
private static final Set<Room> rooms = new HashSet<>();
|
||||
private static final Map<Player, Room> players = new WeakHashMap<>();
|
||||
private static final Logger logger = Logger.getLogger("room");
|
||||
public final UUID uuid = UUID.randomUUID();
|
||||
public final boolean apiDriven;
|
||||
private final Tournament tournament = new Tournament();
|
||||
private Player owner;
|
||||
private GameSelector gameSelector;
|
||||
|
||||
private Room(Player owner) {
|
||||
super(Dimension.THE_END.key);
|
||||
this.apiDriven = false;
|
||||
this.construct();
|
||||
this.setOwner(owner);
|
||||
}
|
||||
|
||||
protected Room() {
|
||||
super(Dimension.THE_END.key);
|
||||
this.apiDriven = true;
|
||||
this.construct();
|
||||
}
|
||||
|
||||
public static Room createRoom(Player owner) {
|
||||
logger.info("Creating room with owner " + owner.getUsername());
|
||||
@@ -82,24 +100,6 @@ public class Room extends MineNetInstance implements Spawnable {
|
||||
return rooms;
|
||||
}
|
||||
|
||||
private Player owner;
|
||||
public final UUID uuid = UUID.randomUUID();
|
||||
public final boolean apiDriven;
|
||||
private GameSelector gameSelector;
|
||||
private final Tournament tournament = new Tournament();
|
||||
private Room(Player owner) {
|
||||
super(Dimension.THE_END.key);
|
||||
this.apiDriven = false;
|
||||
this.construct();
|
||||
this.setOwner(owner);
|
||||
}
|
||||
|
||||
protected Room() {
|
||||
super(Dimension.THE_END.key);
|
||||
this.apiDriven = true;
|
||||
this.construct();
|
||||
}
|
||||
|
||||
private void construct() {
|
||||
MinecraftServer.getInstanceManager().registerInstance(this);
|
||||
this.setChunkLoader(new AnvilLoader(Resource.LOBBY_MAP.getPath()));
|
||||
@@ -126,12 +126,12 @@ public class Room extends MineNetInstance implements Spawnable {
|
||||
if(p != this.owner) return;
|
||||
|
||||
this.getAllMembers().stream()
|
||||
.filter(player -> player != p) // exclude the current leaving owner
|
||||
.findFirst()
|
||||
.ifPresentOrElse(
|
||||
this::setOwner,
|
||||
() -> Room.getRoom(p).ifPresent(Room::deleteRoom) // delete room if no players are left
|
||||
);
|
||||
.filter(player -> player != p) // exclude the current leaving owner
|
||||
.findFirst()
|
||||
.ifPresentOrElse(
|
||||
this::setOwner,
|
||||
() -> Room.getRoom(p).ifPresent(Room::deleteRoom) // delete room if no players are left
|
||||
);
|
||||
|
||||
Room.unsetRoom(p);
|
||||
|
||||
@@ -159,8 +159,8 @@ public class Room extends MineNetInstance implements Spawnable {
|
||||
|
||||
public Set<Player> getAllMembers() {
|
||||
return players.keySet().stream()
|
||||
.filter(player -> getRoom(player).orElse(null) == this)
|
||||
.collect(Collectors.toSet());
|
||||
.filter(player -> getRoom(player).orElse(null) == this)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
public Tournament getTournament() {
|
||||
|
||||
@@ -14,10 +14,11 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class GameSelector extends InteractableEntity {
|
||||
final AbstractVillagerMeta abstractVillagerMeta;
|
||||
|
||||
public GameSelector() {
|
||||
super(EntityType.VILLAGER);
|
||||
|
||||
abstractVillagerMeta = (AbstractVillagerMeta) this.getEntityMeta();
|
||||
this.abstractVillagerMeta = (AbstractVillagerMeta) this.getEntityMeta();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -32,10 +33,10 @@ public class GameSelector extends InteractableEntity {
|
||||
|
||||
@Override
|
||||
public void onInteract(@NotNull PlayerEntityInteractEvent playerEntityInteractEvent) {
|
||||
Room room = (Room) instance;
|
||||
Room room = (Room) this.instance;
|
||||
|
||||
if(playerEntityInteractEvent.getPlayer() != room.getOwner()) {
|
||||
abstractVillagerMeta.setHeadShakeTimer(20);
|
||||
this.abstractVillagerMeta.setHeadShakeTimer(20);
|
||||
|
||||
new ChatMessage(Icon.ERROR)
|
||||
.appendTranslated("room#onlyOwnerCanStart")
|
||||
|
||||
@@ -19,25 +19,26 @@ import java.util.List;
|
||||
public class MinigameSelectInventory extends InteractableInventory {
|
||||
final private Room room;
|
||||
final private Player p;
|
||||
|
||||
public MinigameSelectInventory(Room room, Player p) {
|
||||
super(InventoryType.CHEST_6_ROW, TranslatedComponent.assemble("room#invTitle", p));
|
||||
this.room = room;
|
||||
this.p = p;
|
||||
|
||||
InventoryItemAlignment itemAlignment = new InventoryItemAlignment(GameType.values().length, 1);
|
||||
for (GameType type : GameType.values()) {
|
||||
setClickableItem(
|
||||
ItemStack.builder(type.getIcon())
|
||||
.customName(type.getTitle().getAssembled(p))
|
||||
.lore(type.getDescription().addWrap().getWrappedAssembled(p))
|
||||
.build(),
|
||||
itemAlignment.next().get(),
|
||||
itemClick -> drawGames(type)
|
||||
for(GameType type : GameType.values()) {
|
||||
this.setClickableItem(
|
||||
ItemStack.builder(type.getIcon())
|
||||
.customName(type.getTitle().getAssembled(p))
|
||||
.lore(type.getDescription().addWrap().getWrappedAssembled(p))
|
||||
.build(),
|
||||
itemAlignment.next().get(),
|
||||
itemClick -> this.drawGames(type)
|
||||
);
|
||||
}
|
||||
|
||||
for(int i = 9; i <= 17; i++) {
|
||||
setDummyItem(Material.CYAN_STAINED_GLASS_PANE, i);
|
||||
this.setDummyItem(Material.CYAN_STAINED_GLASS_PANE, i);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,23 +46,23 @@ public class MinigameSelectInventory extends InteractableInventory {
|
||||
|
||||
private void drawGames(GameType type) {
|
||||
for(int i = 18; i <= 53; i++) {
|
||||
setDummyItem(Material.AIR, i);
|
||||
this.setDummyItem(Material.AIR, i);
|
||||
}
|
||||
int offset = 18;
|
||||
|
||||
List<GameList> games = Arrays.stream(GameList.values()).filter(gameList -> gameList.getType().equals(type)).toList();
|
||||
|
||||
InventoryItemAlignment itemAlignment = new InventoryItemAlignment(games.size(), 4);
|
||||
for (GameList game : games) {
|
||||
for(GameList game : games) {
|
||||
GameFactory gameFactory = game.getFactory();
|
||||
|
||||
setClickableItem(
|
||||
ItemStack.builder(gameFactory.symbol())
|
||||
.customName(gameFactory.name().getAssembled(p))
|
||||
.lore(gameFactory.description().addWrap().getWrappedAssembled(p))
|
||||
.build(),
|
||||
offset + itemAlignment.next().get(),
|
||||
itemClick -> itemClick.getPlayer().openInventory(new GameConfigurationInventory(room, itemClick.getPlayer(), gameFactory))
|
||||
this.setClickableItem(
|
||||
ItemStack.builder(gameFactory.symbol())
|
||||
.customName(gameFactory.name().getAssembled(this.p))
|
||||
.lore(gameFactory.description().addWrap().getWrappedAssembled(this.p))
|
||||
.build(),
|
||||
offset + itemAlignment.next().get(),
|
||||
itemClick -> itemClick.getPlayer().openInventory(new GameConfigurationInventory(this.room, itemClick.getPlayer(), gameFactory))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user