added user rolling support
This commit is contained in:
parent
ad4a9793bb
commit
8479ac8c3f
36
events.py
36
events.py
|
@ -2,6 +2,7 @@
|
||||||
"""
|
"""
|
||||||
SocketIO events.
|
SocketIO events.
|
||||||
"""
|
"""
|
||||||
|
import re
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
@ -51,6 +52,41 @@ def message(data):
|
||||||
db.log_chat_message(data)
|
db.log_chat_message(data)
|
||||||
emit("message", data, room=room)
|
emit("message", data, room=room)
|
||||||
|
|
||||||
|
if message.startswith("/dice") or message.startswith("/roll"):
|
||||||
|
handle_dice(data)
|
||||||
|
|
||||||
|
|
||||||
|
def handle_dice(data):
|
||||||
|
"""
|
||||||
|
Handle /dice or /roll messages.
|
||||||
|
"""
|
||||||
|
room = data["room"]
|
||||||
|
reg = re.search(r"(\d+)d(\d+)([+-]\d+)?", data['message'])
|
||||||
|
if not reg:
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
diceNum, diceSides, diceMod = map(int, reg.groups())
|
||||||
|
assert 0 < diceNum < 100
|
||||||
|
assert 0 < diceSides < 100
|
||||||
|
assert -1000 < diceMod < 1000
|
||||||
|
except (ValueError, AssertionError):
|
||||||
|
return
|
||||||
|
dice = [random.randint(1, diceSides) for _ in range(diceNum)]
|
||||||
|
total = sum(dice)
|
||||||
|
if diceMod:
|
||||||
|
total += diceMod
|
||||||
|
msg = f"<b>Rolled {', '.join(map(str, dice))}"
|
||||||
|
if diceMod:
|
||||||
|
if diceMod > 0:
|
||||||
|
msg += " +"
|
||||||
|
msg += " " + str(diceMod)
|
||||||
|
msg += " = " + str(total) + "</b>"
|
||||||
|
date = int(time.time())
|
||||||
|
name = "Server"
|
||||||
|
data = {"message": msg, "name": name, "date": date, "room": room}
|
||||||
|
#emit("message", data, room=room)
|
||||||
|
message(data)
|
||||||
|
|
||||||
|
|
||||||
@socketio.on("new_post")
|
@socketio.on("new_post")
|
||||||
def new_post(data):
|
def new_post(data):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user