Added sound handling. Added create new room and get room list to client and server
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import string
|
||||
import random
|
||||
from enetcomponents import server
|
||||
|
||||
class channel(server.channel):
|
||||
@@ -29,6 +31,25 @@ class channel(server.channel):
|
||||
if channel.room == self.room:
|
||||
channel.send_data(0, data)
|
||||
|
||||
def cmd_create_room(self, data):
|
||||
code = ''.join(random.choices(string.ascii_uppercase +string.digits, k = 10))
|
||||
existing = True
|
||||
while existing:
|
||||
existing = self.server.room_exists(code)
|
||||
if existing == True:
|
||||
code = ''.join(random.choices(string.ascii_uppercase +string.digits, k = 10))
|
||||
self.server.rooms.append(code)
|
||||
data.update(nickname=self.nickname)
|
||||
self.room = code
|
||||
self.send_data(0, data)
|
||||
|
||||
def cmd_request_room_list(self, data):
|
||||
rooms = dict()
|
||||
for room in self.server.rooms:
|
||||
players = self.server.get_players_in_room(room)
|
||||
rooms[room]= players
|
||||
self.send_data(0, dict(action="room_list", rooms=rooms))
|
||||
|
||||
class server(server.server):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -45,6 +66,15 @@ class server(server.server):
|
||||
del self.peers[channel]
|
||||
break
|
||||
|
||||
def room_exists(self, room_id):
|
||||
for i in self.rooms:
|
||||
if room_id == i:
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_players_in_room(self, room_id):
|
||||
return [player.nickname for player in self.peers if player.room == room_id]
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("Starting chat server...")
|
||||
s = server()
|
||||
|
Reference in New Issue
Block a user