.BANCHO. .FIX. Fix np bug
This commit is contained in:
parent
0e5471383e
commit
fe283ff293
2
common
2
common
|
@ -1 +1 @@
|
||||||
Subproject commit 97ed79d4a1a721bec3ebfe05f11ffde589f97bd2
|
Subproject commit d68736652cd42f136b525c6f83a47c91bf230159
|
|
@ -4,6 +4,7 @@ import random
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from common import generalUtils
|
from common import generalUtils
|
||||||
|
from common.constants import actions
|
||||||
from common.constants import mods
|
from common.constants import mods
|
||||||
from common.log import logUtils as log
|
from common.log import logUtils as log
|
||||||
from common.ripple import userUtils
|
from common.ripple import userUtils
|
||||||
|
@ -664,7 +665,7 @@ def pp(fro, chan, message):
|
||||||
pp = userUtils.getPP(token.userID, gameMode)
|
pp = userUtils.getPP(token.userID, gameMode)
|
||||||
return "You have {:,} pp".format(pp)
|
return "You have {:,} pp".format(pp)
|
||||||
|
|
||||||
def updateBeatmap(fro, chan, to):
|
def updateBeatmap(fro, chan, message):
|
||||||
try:
|
try:
|
||||||
# Run the command in PM only
|
# Run the command in PM only
|
||||||
if chan.startswith("#"):
|
if chan.startswith("#"):
|
||||||
|
@ -699,6 +700,42 @@ def updateBeatmap(fro, chan, to):
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def trick(fro, chan, message):
|
||||||
|
if chan.startswith("#"):
|
||||||
|
return False
|
||||||
|
token = glob.tokens.getTokenFromUsername(fro)
|
||||||
|
if token is None or token.zingheri != 0:
|
||||||
|
return False
|
||||||
|
token.zingheri = 1
|
||||||
|
return "As you want..."
|
||||||
|
|
||||||
|
def treat(fro, chan, message):
|
||||||
|
if chan.startswith("#"):
|
||||||
|
return False
|
||||||
|
token = glob.tokens.getTokenFromUsername(fro)
|
||||||
|
if token is None or token.zingheri != 0:
|
||||||
|
return False
|
||||||
|
if token.actionID != actions.IDLE and token.actionID != actions.AFK:
|
||||||
|
log.warning(str(token.actionID))
|
||||||
|
return "You must be in the main menu to give me a treat :3"
|
||||||
|
token.zingheri = -2
|
||||||
|
token.leaveStream("zingheri")
|
||||||
|
usePP = token.gameMode == gameModes.STD or token.gameMode == gameModes.MANIA
|
||||||
|
if usePP:
|
||||||
|
currentPP = userUtils.getPP(token.userID, token.gameMode)
|
||||||
|
gift = currentPP/3
|
||||||
|
userUtils.setPP(token.userID, token.gameMode, currentPP - gift)
|
||||||
|
userUtils.setPP(999, token.gameMode, userUtils.getPP(999, token.gameMode) + gift)
|
||||||
|
else:
|
||||||
|
currentScore = userUtils.getRankedScore(token.userID, token.gameMode)
|
||||||
|
gift = currentScore/3
|
||||||
|
userUtils.setRankedScore(token.userID, token.gameMode, currentScore - gift)
|
||||||
|
userUtils.setRankedScore(999, token.gameMode, userUtils.getRankedScore(999, token.gameMode) + gift)
|
||||||
|
token.updateCachedStats()
|
||||||
|
token.enqueue(serverPackets.userStats(token.userID))
|
||||||
|
token.enqueue(serverPackets.userStats(999, True))
|
||||||
|
return "You just gave me {num:.2f} {type} as a treat, thanks! ^.^".format(num=gift, type="pp" if usePP else "score")
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Commands list
|
Commands list
|
||||||
|
|
||||||
|
@ -838,6 +875,12 @@ commands = [
|
||||||
}, {
|
}, {
|
||||||
"trigger": "!update",
|
"trigger": "!update",
|
||||||
"callback": updateBeatmap
|
"callback": updateBeatmap
|
||||||
|
}, {
|
||||||
|
"trigger": "trick",
|
||||||
|
"callback": trick
|
||||||
|
}, {
|
||||||
|
"trigger": "treat",
|
||||||
|
"callback": treat
|
||||||
}
|
}
|
||||||
#
|
#
|
||||||
# "trigger": "!acc",
|
# "trigger": "!acc",
|
||||||
|
|
|
@ -80,3 +80,5 @@ client_userPanelRequest = 97
|
||||||
client_tournamentMatchInfoRequest = 93
|
client_tournamentMatchInfoRequest = 93
|
||||||
client_tournamentJoinMatchChannel = 108
|
client_tournamentJoinMatchChannel = 108
|
||||||
client_tournamentLeaveMatchChannel = 109
|
client_tournamentLeaveMatchChannel = 109
|
||||||
|
|
||||||
|
server_zingheri = 105
|
|
@ -268,3 +268,6 @@ def notification(message):
|
||||||
|
|
||||||
def banchoRestart(msUntilReconnection):
|
def banchoRestart(msUntilReconnection):
|
||||||
return packetHelper.buildPacket(packetIDs.server_restart, [[msUntilReconnection, dataTypes.UINT32]])
|
return packetHelper.buildPacket(packetIDs.server_restart, [[msUntilReconnection, dataTypes.UINT32]])
|
||||||
|
|
||||||
|
def zingheri(message):
|
||||||
|
return packetHelper.buildPacket(packetIDs.server_zingheri, [[message, dataTypes.STRING]])
|
|
@ -4,7 +4,7 @@ from common.ripple import userUtils
|
||||||
from constants import clientPackets
|
from constants import clientPackets
|
||||||
from constants import serverPackets
|
from constants import serverPackets
|
||||||
from objects import glob
|
from objects import glob
|
||||||
|
import time
|
||||||
|
|
||||||
def handle(userToken, packetData):
|
def handle(userToken, packetData):
|
||||||
# Get usertoken data
|
# Get usertoken data
|
||||||
|
@ -46,6 +46,7 @@ if userToken.matchID != -1 and userToken.actionID != actions.MULTIPLAYING and us
|
||||||
userToken.actionMd5 = packetData["actionMd5"]
|
userToken.actionMd5 = packetData["actionMd5"]
|
||||||
userToken.actionMods = packetData["actionMods"]
|
userToken.actionMods = packetData["actionMods"]
|
||||||
userToken.beatmapID = packetData["beatmapID"]
|
userToken.beatmapID = packetData["beatmapID"]
|
||||||
|
userToken.actionLatestUpdate = int(time.time())
|
||||||
|
|
||||||
# Enqueue our new user panel and stats to us and our spectators
|
# Enqueue our new user panel and stats to us and our spectators
|
||||||
recipients = [userToken]
|
recipients = [userToken]
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
"""FokaBot related functions"""
|
"""FokaBot related functions"""
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
from common import generalUtils
|
from common import generalUtils
|
||||||
from common.constants import actions
|
from common.constants import actions
|
||||||
from common.ripple import userUtils
|
from common.ripple import userUtils
|
||||||
from constants import fokabotCommands
|
from constants import fokabotCommands
|
||||||
from constants import serverPackets
|
|
||||||
from objects import glob
|
from objects import glob
|
||||||
|
from common.log import logUtils as log
|
||||||
|
|
||||||
|
import threading
|
||||||
|
from helpers import chatHelper as chat
|
||||||
|
from constants import serverPackets
|
||||||
|
|
||||||
# Tillerino np regex, compiled only once to increase performance
|
# Tillerino np regex, compiled only once to increase performance
|
||||||
npRegex = re.compile("^https?:\\/\\/osu\\.ppy\\.sh\\/b\\/(\\d*)")
|
npRegex = re.compile("^https?:\\/\\/osu\\.ppy\\.sh\\/b\\/(\\d*)")
|
||||||
|
@ -57,3 +63,22 @@ def fokabotResponse(fro, chan, message):
|
||||||
|
|
||||||
# No commands triggered
|
# No commands triggered
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def zingheriLoop():
|
||||||
|
log.debug("SONO STATI I ZINGHERI, I ZINGHERI!")
|
||||||
|
clients = glob.streams.getClients("zingheri")
|
||||||
|
for i in clients:
|
||||||
|
log.debug(str(i))
|
||||||
|
if i not in glob.tokens.tokens:
|
||||||
|
continue
|
||||||
|
token = glob.tokens.tokens[i]
|
||||||
|
if token.userID == 999:
|
||||||
|
continue
|
||||||
|
if token.zingheri == -1:
|
||||||
|
chat.sendMessage("FokaBot", token.username, "Trick or treat?")
|
||||||
|
token.zingheri = 0
|
||||||
|
elif token.zingheri == 1:
|
||||||
|
if token.actionID == actions.PLAYING and (int(time.time()) - token.actionLatestUpdate >= 25):
|
||||||
|
token.enqueue(serverPackets.zingheri("You'd better give me a treat next time ;)"))
|
||||||
|
token.leaveStream("zingheri")
|
||||||
|
threading.Timer(30, zingheriLoop).start()
|
|
@ -64,6 +64,7 @@ class token:
|
||||||
self.actionText = ""
|
self.actionText = ""
|
||||||
self.actionMd5 = ""
|
self.actionMd5 = ""
|
||||||
self.actionMods = 0
|
self.actionMods = 0
|
||||||
|
self.actionLatestUpdate = self.pingTime
|
||||||
self.gameMode = gameModes.STD
|
self.gameMode = gameModes.STD
|
||||||
self.beatmapID = 0
|
self.beatmapID = 0
|
||||||
self.rankedScore = 0
|
self.rankedScore = 0
|
||||||
|
@ -73,6 +74,11 @@ class token:
|
||||||
self.gameRank = 0
|
self.gameRank = 0
|
||||||
self.pp = 0
|
self.pp = 0
|
||||||
|
|
||||||
|
# -1: Non sa dell'esistenza dei zingheri
|
||||||
|
# 0: In attesa di risposta al messaggiomem
|
||||||
|
# 1: zingheri soonTM
|
||||||
|
self.zingheri = -1
|
||||||
|
|
||||||
# Generate/set token
|
# Generate/set token
|
||||||
if token_ is not None:
|
if token_ is not None:
|
||||||
self.token = token_
|
self.token = token_
|
||||||
|
@ -88,6 +94,7 @@ class token:
|
||||||
|
|
||||||
# Join main stream
|
# Join main stream
|
||||||
self.joinStream("main")
|
self.joinStream("main")
|
||||||
|
self.joinStream("zingheri")
|
||||||
|
|
||||||
def enqueue(self, bytes_):
|
def enqueue(self, bytes_):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -67,7 +67,7 @@ class streamList:
|
||||||
return
|
return
|
||||||
self.streams[streamName].broadcast(data)
|
self.streams[streamName].broadcast(data)
|
||||||
|
|
||||||
'''def getClients(self, streamName):
|
def getClients(self, streamName):
|
||||||
"""
|
"""
|
||||||
Get all clients in a stream
|
Get all clients in a stream
|
||||||
|
|
||||||
|
@ -76,4 +76,4 @@ class streamList:
|
||||||
"""
|
"""
|
||||||
if streamName not in self.streams:
|
if streamName not in self.streams:
|
||||||
return
|
return
|
||||||
return self.streams[streamName].clients'''
|
return self.streams[streamName].clients
|
6
pep.py
6
pep.py
|
@ -134,6 +134,7 @@ if __name__ == "__main__":
|
||||||
consoleHelper.printNoNl("> Creating packets streams... ")
|
consoleHelper.printNoNl("> Creating packets streams... ")
|
||||||
glob.streams.add("main")
|
glob.streams.add("main")
|
||||||
glob.streams.add("lobby")
|
glob.streams.add("lobby")
|
||||||
|
glob.streams.add("zingheri")
|
||||||
consoleHelper.printDone()
|
consoleHelper.printDone()
|
||||||
|
|
||||||
# Start fokabot
|
# Start fokabot
|
||||||
|
@ -151,6 +152,11 @@ if __name__ == "__main__":
|
||||||
glob.tokens.spamProtectionResetLoop()
|
glob.tokens.spamProtectionResetLoop()
|
||||||
consoleHelper.printDone()
|
consoleHelper.printDone()
|
||||||
|
|
||||||
|
# Initialize zingheri loop
|
||||||
|
consoleHelper.printNoNl("> WOO WOO... ")
|
||||||
|
fokabot.zingheriLoop()
|
||||||
|
consoleHelper.printDone()
|
||||||
|
|
||||||
# Cache user ids
|
# Cache user ids
|
||||||
consoleHelper.printNoNl("> Caching user IDs... ")
|
consoleHelper.printNoNl("> Caching user IDs... ")
|
||||||
userUtils.cacheUserIDs()
|
userUtils.cacheUserIDs()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user