feat: changed WebSockets to Participants, and created those
This commit is contained in:
parent
2b00b1520b
commit
7a8857da0c
@ -13,9 +13,8 @@ import java.util.HashSet;
|
||||
*/
|
||||
public class LobbyConnection {
|
||||
private Lobby lobby;
|
||||
private WebSocket player1;
|
||||
private WebSocket player2;
|
||||
private HashSet<WebSocket> spectators;
|
||||
private Participant player1, player2;
|
||||
private HashSet<Participant> spectators;
|
||||
|
||||
/**
|
||||
* Creates a new LobbyConnection from a given lobby
|
||||
@ -45,7 +44,7 @@ public class LobbyConnection {
|
||||
* @param player is the websocket to be added
|
||||
* @return true if added successfully, and false otherwise
|
||||
*/
|
||||
public boolean addPlayer1(WebSocket player) {
|
||||
public boolean addPlayer1(Participant player) {
|
||||
if (this.contains(player)) return false;
|
||||
if (player1 == null) {
|
||||
player1 = player;
|
||||
@ -60,7 +59,7 @@ public class LobbyConnection {
|
||||
* @param player is the websocket to be added
|
||||
* @return true if added successfully, and false otherwise
|
||||
*/
|
||||
public boolean addPlayer2(WebSocket player) {
|
||||
public boolean addPlayer2(Participant player) {
|
||||
if (this.contains(player)) return false;
|
||||
if (player2 == null) {
|
||||
player2 = player;
|
||||
@ -75,14 +74,14 @@ public class LobbyConnection {
|
||||
* @param player is the websocket to be added
|
||||
* @return true if added successfully, and false otherwise
|
||||
*/
|
||||
public boolean addPlayer(WebSocket player) {
|
||||
public boolean addPlayer(Participant player) {
|
||||
if (!addPlayer1(player)) {
|
||||
return addPlayer2(player);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean removePlayer(WebSocket player) {
|
||||
public boolean removePlayer(Participant player) {
|
||||
if (player1 == player) {
|
||||
player1 = null;
|
||||
return true;
|
||||
@ -101,8 +100,8 @@ public class LobbyConnection {
|
||||
|
||||
// Methods to send events
|
||||
|
||||
public void sendEvents(ParticipantType target, Event... events) {
|
||||
MessageRelay.getInstance().sendMessage(this, target, events);
|
||||
public void sendEvents(Participant recipient, Event... events) {
|
||||
MessageRelay.getInstance().sendMessage(this, recipient, events);
|
||||
}
|
||||
|
||||
public void broadcastEvents(Event... events) {
|
||||
|
@ -30,7 +30,7 @@ public class MessageRelay {
|
||||
// TODO: send to target lobby
|
||||
}
|
||||
|
||||
public void sendMessage (LobbyConnection origin, ParticipantType target, Event[] events) {
|
||||
public void sendMessage (LobbyConnection origin, Participant recipient, Event[] events) {
|
||||
switch (target) {
|
||||
case Player1 -> {
|
||||
|
||||
|
@ -0,0 +1,38 @@
|
||||
package uulm.teamname.marvelous.server.LobbyManager;
|
||||
|
||||
import org.java_websocket.WebSocket;
|
||||
import uulm.teamname.marvelous.gamelibrary.gamelogic.ParticipantType;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Participant {
|
||||
|
||||
/** The Websocket to contact the participant with */
|
||||
public final WebSocket connection;
|
||||
|
||||
/** The type (as in role) of participant */
|
||||
public final ParticipantType type;
|
||||
|
||||
/** Whether the participant is an AI */
|
||||
public final boolean AI;
|
||||
|
||||
/** Creates a new {@link Participant} */
|
||||
public Participant (WebSocket connection, ParticipantType type, boolean AI) {
|
||||
this.connection = connection;
|
||||
this.type = type;
|
||||
this.AI = AI;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
Participant that = (Participant) o;
|
||||
return AI == that.AI && Objects.equals(connection, that.connection) && type == that.type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(connection, type, AI);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user