quick patch to stop status spam
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
const connection = new WebSocket('ws://localhost:8181/socket')
|
||||
// const connection = new WebSocket('ws://localhost:8181/socket')
|
||||
// const connection = new WebSocket('wss://echo.websocket.org')
|
||||
// const connection = new WebSocket('wss://voozik.gltronic.ovh/socket')
|
||||
const connection = new WebSocket('wss://voozik.gltronic.ovh/socket')
|
||||
|
||||
var alive = null
|
||||
|
||||
@@ -52,7 +52,7 @@ export default function createSignalPlugin () {
|
||||
break
|
||||
|
||||
case 'roomStatus':
|
||||
store.dispatch('room/setRoomStatus', data.message)
|
||||
if (store.state.room.admin) store.dispatch('room/setRoomStatus', data.message)
|
||||
break
|
||||
|
||||
case 'roomSettings':
|
||||
|
||||
@@ -6,18 +6,20 @@ import java.util.Optional;
|
||||
import java.util.Random;
|
||||
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.socket.TextMessage;
|
||||
import org.springframework.web.socket.WebSocketSession;
|
||||
|
||||
import gltronic.voozik.model.Server;
|
||||
import gltronic.voozik.model.ServerStatus;
|
||||
import gltronic.voozik.model.VRoom;
|
||||
import gltronic.voozik.model.VUser;
|
||||
|
||||
@Service
|
||||
public class RoomManager implements IRoomManager {
|
||||
private volatile ArrayList<VUser> users = new ArrayList<VUser>();
|
||||
private volatile ArrayList<VRoom> rooms = new ArrayList<VRoom>();
|
||||
@Autowired
|
||||
Server server;
|
||||
|
||||
@Override
|
||||
public void login(WebSocketSession session, String name) throws InterruptedException, IOException {
|
||||
@@ -26,12 +28,12 @@ public class RoomManager implements IRoomManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if (users.stream().anyMatch(user -> user.getSession().equals(session))) {
|
||||
if (server.users.stream().anyMatch(user -> user.getSession().equals(session))) {
|
||||
SocketUtils.sendMessage(session, "login", "false");
|
||||
return;
|
||||
}
|
||||
|
||||
if (users.stream().anyMatch(user -> user.getName().equals(name))) {
|
||||
if (server.users.stream().anyMatch(user -> user.getName().equals(name))) {
|
||||
SocketUtils.sendMessage(session, "login", "false");
|
||||
return;
|
||||
}
|
||||
@@ -40,7 +42,7 @@ public class RoomManager implements IRoomManager {
|
||||
user.setName(name);
|
||||
user.setSession(session);
|
||||
|
||||
users.add(user);
|
||||
server.users.add(user);
|
||||
|
||||
SocketUtils.sendMessage(session, "login", "true");
|
||||
sendServerInfos(session);
|
||||
@@ -50,11 +52,11 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void leave(WebSocketSession session) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
users.remove(user);
|
||||
Optional<VRoom> oroom = rooms.stream().filter(room -> room.getUsers().contains(user)).findFirst();
|
||||
server.users.remove(user);
|
||||
Optional<VRoom> oroom = server.rooms.stream().filter(room -> room.getUsers().contains(user)).findFirst();
|
||||
|
||||
if (oroom.isPresent()) {
|
||||
oroom.get().getUsers().remove(user);
|
||||
@@ -63,7 +65,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void createRoom(WebSocketSession session) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
if (user.getRoom() != null) {
|
||||
@@ -83,7 +85,7 @@ public class RoomManager implements IRoomManager {
|
||||
room.setPublic(false);
|
||||
room.setUsers(new ArrayList<VUser>());
|
||||
|
||||
rooms.add(room);
|
||||
server.rooms.add(room);
|
||||
user.setRoom(room);
|
||||
|
||||
SocketUtils.sendMessage(session, "roomCreate", roomCode);
|
||||
@@ -98,14 +100,14 @@ public class RoomManager implements IRoomManager {
|
||||
return;
|
||||
}
|
||||
|
||||
Optional<VRoom> oroom = rooms.stream().filter(room -> room.getCode().equals(roomCode)).findFirst();
|
||||
Optional<VRoom> oroom = server.rooms.stream().filter(room -> room.getCode().equals(roomCode)).findFirst();
|
||||
if (oroom.isEmpty()) {
|
||||
SocketUtils.sendMessage(session, "error", "no room");
|
||||
return;
|
||||
}
|
||||
|
||||
VRoom room = oroom.get();
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
user.setRoom(room);
|
||||
@@ -129,7 +131,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void leaveRoom(WebSocketSession session) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
VRoom room = UserUtils.getRoom(session, user);
|
||||
@@ -151,7 +153,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void setRoomStatus(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
VRoom room = UserUtils.getRoom(session, user);
|
||||
@@ -175,7 +177,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void setRoomSettings(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
VRoom room = UserUtils.getRoom(session, user);
|
||||
@@ -192,7 +194,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void forwardRoomMessage(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
VRoom room = UserUtils.getRoom(session, user);
|
||||
@@ -210,7 +212,7 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
@Override
|
||||
public void kickUser(WebSocketSession session, String username) throws InterruptedException, IOException {
|
||||
VUser user = UserUtils.getUser(session, users);
|
||||
VUser user = UserUtils.getUser(session, server.users);
|
||||
if (user == null) return;
|
||||
|
||||
VRoom room = UserUtils.getRoom(session, user);
|
||||
@@ -239,11 +241,11 @@ public class RoomManager implements IRoomManager {
|
||||
|
||||
public void sendServerInfos(WebSocketSession session) throws InterruptedException, IOException {
|
||||
ServerStatus status = new ServerStatus();
|
||||
status.setRoomCount(rooms.size());
|
||||
status.setUserCount(users.size());
|
||||
status.setRoomCount(server.rooms.size());
|
||||
status.setUserCount(server.users.size());
|
||||
status.setRooms(new ArrayList<String>());
|
||||
|
||||
rooms.forEach(room -> {
|
||||
server.rooms.forEach(room -> {
|
||||
if(room.isPublic()) status.getRooms().add(room.getCode());
|
||||
});
|
||||
|
||||
|
||||
11
server/src/main/java/gltronic/voozik/model/Server.java
Normal file
11
server/src/main/java/gltronic/voozik/model/Server.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package gltronic.voozik.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class Server {
|
||||
public ArrayList<VUser> users = new ArrayList<VUser>();
|
||||
public ArrayList<VRoom> rooms = new ArrayList<VRoom>();
|
||||
}
|
||||
BIN
voozik.jar
BIN
voozik.jar
Binary file not shown.
Reference in New Issue
Block a user