added missing gradle files
This commit is contained in:
		| @@ -25,7 +25,8 @@ import java.util.logging.Logger; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| public class Room extends MineNetInstance implements Spawnable { | ||||
|     private static final Map<Player, Room> rooms = new WeakHashMap<>(); | ||||
|     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 static Room createRoom(Player owner) { | ||||
| @@ -34,15 +35,22 @@ public class Room extends MineNetInstance implements Spawnable { | ||||
|         return getRoom(owner).orElseThrow(); | ||||
|     } | ||||
|  | ||||
|     public static Room createOwnerlessRoom() { | ||||
|         Room room = new Room(); | ||||
|         rooms.add(room); | ||||
|         return room; | ||||
|     } | ||||
|  | ||||
|     public static void deleteRoom(Room room) { | ||||
|         logger.info("Deleting room " + room.uniqueId); | ||||
|         rooms.values().removeAll(Collections.singleton(room)); // remove(room) would only remove the first one | ||||
|         rooms.remove(room); | ||||
|         players.values().removeAll(Collections.singleton(room)); | ||||
|         room.getAllMembers().forEach(player -> MoveInstance.move(player, Hub.INSTANCE)); | ||||
|         MoveInstance.forceCloseInstance(room); | ||||
|     } | ||||
|  | ||||
|     public static Optional<Room> getRoom(Player p) { | ||||
|         return Optional.ofNullable(rooms.get(p)); | ||||
|         return Optional.ofNullable(players.get(p)); | ||||
|     } | ||||
|  | ||||
|     public static void setOwnRoom(Player p) { | ||||
| @@ -50,42 +58,45 @@ public class Room extends MineNetInstance implements Spawnable { | ||||
|     } | ||||
|  | ||||
|     public static void setRoom(Player p, Room room) { | ||||
|         logger.info("Set room for player " + p.getUsername() + " to room by " + room.owner.getUsername()); | ||||
|         p.clearEffects(); | ||||
|         p.clearTitle(); | ||||
|         p.getInventory().clear(); | ||||
|         p.setGameMode(GameMode.ADVENTURE); | ||||
|         rooms.put(p, room); | ||||
|         rooms.add(room); | ||||
|         players.put(p, room); | ||||
|         MoveInstance.move(p, room); | ||||
|     } | ||||
|  | ||||
|     public static void unsetRoom(Player p) { | ||||
|         logger.info("Unset room for " + p.getUsername()); | ||||
|         rooms.remove(p); | ||||
|         players.remove(p); | ||||
|     } | ||||
|  | ||||
|     public static Set<Room> getAllRooms() { | ||||
|         return new HashSet<>(rooms.values()); | ||||
|         return rooms; | ||||
|     } | ||||
|  | ||||
|     private Player owner; | ||||
|     public final UUID uuid = UUID.randomUUID(); | ||||
|     private GameSelector gameSelector; | ||||
|     private Room(Player owner) { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         construct(); | ||||
|         setOwner(owner); | ||||
|         this.gameSelector = new GameSelector(); | ||||
|         this.gameSelector.setInstance(this, new Pos(0.5, 50, 19.5)); | ||||
|     } | ||||
|  | ||||
|     protected Room() { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         construct(); | ||||
|     } | ||||
|  | ||||
|     private void construct() { | ||||
|         MinecraftServer.getInstanceManager().registerInstance(this); | ||||
|         setChunkLoader(new AnvilLoader(Resource.LOBBY_MAP.getPath())); | ||||
|  | ||||
|         this.gameSelector = new GameSelector(); | ||||
|         this.gameSelector.setInstance(this, new Pos(0.5, 50, 19.5)); | ||||
|  | ||||
|         eventNode().addListener(PlayerBlockBreakEvent.class, CommonEventHandles::cancel); | ||||
|         eventNode().addListener(PlayerDisconnectEvent.class, playerDisconnectEvent -> unsetRoom(playerDisconnectEvent.getPlayer())); | ||||
|     } | ||||
| @@ -128,7 +139,7 @@ public class Room extends MineNetInstance implements Spawnable { | ||||
|     } | ||||
|  | ||||
|     public Set<Player> getAllMembers() { | ||||
|         return rooms.keySet().stream() | ||||
|         return players.keySet().stream() | ||||
|                 .filter(player -> getRoom(player).orElse(null) == this) | ||||
|                 .collect(Collectors.toSet()); | ||||
|     } | ||||
|   | ||||
| @@ -37,10 +37,7 @@ public class GameSelector extends InteractableEntity { | ||||
|         if(playerEntityInteractEvent.getPlayer() != room.getOwner()) { | ||||
|             abstractVillagerMeta.setHeadShakeTimer(20); | ||||
|  | ||||
|             new ChatMessage(Icon.ERROR).appendStatic("Only the room leader can start games!").newLine() | ||||
|                     .appendStatic("current leader: ").appendStatic(room.getOwner().getUsername()) | ||||
|                     .send(playerEntityInteractEvent.getPlayer()); | ||||
|  | ||||
|             new ChatMessage(Icon.ERROR).appendStatic("Only the room leader can start games!").send(playerEntityInteractEvent.getPlayer()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user