initial commit backend
This commit is contained in:
66
main.py
Executable file
66
main.py
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# WS server example
|
||||
|
||||
import eventlet
|
||||
import socketio
|
||||
|
||||
from actors import ActorManager
|
||||
from events import Events
|
||||
|
||||
from chat.chat_commands import CommandHandler
|
||||
from users.users import UserManager
|
||||
|
||||
|
||||
sio = socketio.Server()
|
||||
app = socketio.WSGIApp(sio)
|
||||
actor_manager = ActorManager()
|
||||
command_handler = CommandHandler()
|
||||
user_manager = UserManager()
|
||||
|
||||
|
||||
@sio.on('connect')
|
||||
def connect(sid, environ):
|
||||
print("CONNECTED: {}".format(sid))
|
||||
for user in user_manager.get_users():
|
||||
sio.emit(Events.USER_ADDED.value, user, room=sid)
|
||||
|
||||
@sio.on('disconnect')
|
||||
def disconnect(sid):
|
||||
print("DISCONNECTED: {}".format(sid))
|
||||
name = user_manager.remove_user(sid)
|
||||
sio.emit(Events.USER_REMOVED.value, name)
|
||||
|
||||
@sio.on(Events.PUBLIC_CHAT.value)
|
||||
def message(sid, data):
|
||||
# print(data)
|
||||
response = command_handler.handle(data['char'], data['message'])
|
||||
# print(response)
|
||||
# print("\n")
|
||||
sio.emit(response.event.
|
||||
value, response.to_json())
|
||||
|
||||
|
||||
@sio.on(Events.NEW_CHARACTER.value)
|
||||
def message(sid, data):
|
||||
print("INCOMING\n", data)
|
||||
actor_manager.add_character(data)
|
||||
sio.emit(Events.NEW_CHARACTER.value, data)
|
||||
|
||||
@sio.on(Events.USER_EDITED.value)
|
||||
def message(sid, data):
|
||||
print("USER EDITED: ", sid, data)
|
||||
if user_manager.has_user(data['old']):
|
||||
user_manager.remove_user(sid)
|
||||
sio.emit(Events.USER_REMOVED.value, data['old'])
|
||||
user_manager.add_user(data['new']['characterName'], sid)
|
||||
d = data['new']
|
||||
d['characterLoaded'] = True
|
||||
d['skills'] = 'Akrobatik\nArkane Kunde\nSeefahrt'
|
||||
sio.emit(Events.USER_EDITED.value, d, room=sid)
|
||||
sio.emit(Events.USER_ADDED.value, data['new']['characterName'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
eventlet.wsgi.server(eventlet.listen(('', 3101)), app)
|
||||
|
||||
Reference in New Issue
Block a user