mirror of
https://github.com/hypervortex/VH-Bombsquad-Modded-Server-Files
synced 2025-11-07 17:36:08 +00:00
updated
This commit is contained in:
parent
d67551a303
commit
5ba4986d59
2403 changed files with 0 additions and 740883 deletions
|
|
@ -1,367 +0,0 @@
|
|||
from .Handlers import handlemsg, handlemsg_all, clientid_to_myself,send
|
||||
import ba, _ba
|
||||
import json
|
||||
import os
|
||||
|
||||
|
||||
Commands = ['kill', 'fall', 'heal', 'curse', 'sleep', 'superpunch', 'gloves', 'shield', 'freeze', 'unfreeze', 'godmode', 'speedon']
|
||||
CommandAliases = ['die', 'fell-down', 'heath', 'cur', 'sp', 'punch', 'protect', 'ice', 'thaw', 'gm', 'speedy']
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def ExcelCommand(command, arguments, clientid, accountid):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
|
||||
if command in ['kill', 'die']:
|
||||
kill(arguments, clientid)
|
||||
|
||||
elif command in ['fall', 'fell-down']:
|
||||
fall(arguments, clientid)
|
||||
|
||||
elif command in ['heal', 'heath']:
|
||||
heal(arguments, clientid)
|
||||
|
||||
elif command in ['curse', 'cur']:
|
||||
curse(arguments, clientid)
|
||||
|
||||
elif command == 'sleep':
|
||||
sleep(arguments, clientid)
|
||||
|
||||
elif command in ['sp', 'superpunch']:
|
||||
super_punch(arguments, clientid)
|
||||
|
||||
elif command in ['gloves', 'punch']:
|
||||
gloves(arguments, clientid)
|
||||
|
||||
elif command in ['shield', 'protect']:
|
||||
shield(arguments, clientid)
|
||||
|
||||
elif command in ['freeze', 'ice']:
|
||||
freeze(arguments, clientid)
|
||||
|
||||
elif command in ['unfreeze', 'thaw']:
|
||||
un_freeze(arguments, clientid)
|
||||
|
||||
elif command in ['gm', 'godmode']:
|
||||
god_mode(arguments, clientid)
|
||||
|
||||
elif command in ['speedon', 'speedy']:
|
||||
speedy(arguments, clientid)
|
||||
|
||||
|
||||
def kill(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.DieMessage())
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.DieMessage())
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.DieMessage())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
def fall(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.StandMessage())
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.StandMessage())
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.StandMessage())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def heal(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.PowerupMessage(poweruptype='health'))
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.PowerupMessage(poweruptype='health'))
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.PowerupMessage(poweruptype='health'))
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def curse(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.PowerupMessage(poweruptype='curse'))
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.PowerupMessage(poweruptype='curse'))
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.PowerupMessage(poweruptype='curse'))
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def sleep(arguments, clientid):
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
activity.players[myself].actor.node.handlemessage('knockout', 8000)
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
for i in activity.players:
|
||||
i.actor.node.handlemessage('knockout', 8000)
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
activity.players[req_player].actor.node.handlemessage('knockout', 8000)
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def super_punch(arguments, clientid):
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
|
||||
myself = clientid_to_myself(clientid)
|
||||
|
||||
if activity.players[myself].actor._punch_power_scale != 15:
|
||||
activity.players[myself].actor._punch_power_scale = 15
|
||||
activity.players[myself].actor._punch_cooldown = 0
|
||||
else:
|
||||
activity.players[myself].actor._punch_power_scale = 1.2
|
||||
activity.players[myself].actor._punch_cooldown = 400
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for i in activity.players:
|
||||
if i.actor._punch_power_scale != 15:
|
||||
i.actor._punch_power_scale = 15
|
||||
i.actor._punch_cooldown = 0
|
||||
else:
|
||||
i.actor._punch_power_scale = 1.2
|
||||
i.actor._punch_cooldown = 400
|
||||
|
||||
else:
|
||||
try:
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
req_player = int(arguments[0])
|
||||
|
||||
if activity.players[req_player].actor._punch_power_scale != 15:
|
||||
activity.players[req_player].actor._punch_power_scale = 15
|
||||
activity.players[req_player].actor._punch_cooldown = 0
|
||||
else:
|
||||
activity.players[req_player].actor._punch_power_scale = 1.2
|
||||
activity.players[req_player].actor._punch_cooldown = 400
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def gloves(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.PowerupMessage(poweruptype='punch'))
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.PowerupMessage(poweruptype='punch'))
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.PowerupMessage(poweruptype='punch'))
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def shield(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.PowerupMessage(poweruptype='shield'))
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.PowerupMessage(poweruptype='shield'))
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.PowerupMessage(poweruptype='shield'))
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def freeze(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.FreezeMessage())
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.FreezeMessage())
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.FreezeMessage())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def un_freeze(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
handlemsg(myself, ba.ThawMessage())
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.ThawMessage())
|
||||
|
||||
else:
|
||||
try:
|
||||
req_player = int(arguments[0])
|
||||
handlemsg(req_player, ba.ThawMessage())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def god_mode(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
player = activity.players[myself].actor
|
||||
|
||||
if player._punch_power_scale != 7:
|
||||
player._punch_power_scale = 7
|
||||
player.node.hockey = True
|
||||
player.node.invincible = True
|
||||
|
||||
else:
|
||||
player._punch_power_scale = 1.2
|
||||
player.node.hockey = False
|
||||
player.node.invincible = False
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for i in activity.players:
|
||||
if i.actor._punch_power_scale != 7:
|
||||
i.actor._punch_power_scale = 7
|
||||
i.actor.node.hockey = True
|
||||
i.actor.node.invincible = True
|
||||
else:
|
||||
i.actor._punch_power_scale = 1.2
|
||||
i.actor.node.hockey = False
|
||||
i.actor.node.invincible = False
|
||||
|
||||
else:
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
req_player = int(arguments[0])
|
||||
player = activity.players[req_player].actor
|
||||
|
||||
if player._punch_power_scale != 7:
|
||||
player._punch_power_scale = 7
|
||||
player.node.hockey = True
|
||||
player.node.invincible = True
|
||||
|
||||
else:
|
||||
player._punch_power_scale = 1.2
|
||||
player.node.hockey = False
|
||||
player.node.invincible = False
|
||||
|
||||
|
||||
def speedy(arguments, clientid):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
player = activity.players[myself].actor
|
||||
|
||||
if player.node.hockey != True:
|
||||
player.node.hockey = True
|
||||
|
||||
else:
|
||||
player.node.hockey = False
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for i in activity.players:
|
||||
if i.actor.node.hockey != True:
|
||||
i.actor.node.hockey = True
|
||||
else:
|
||||
i.actor.node.hockey = False
|
||||
|
||||
else:
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
req_player = int(arguments[0])
|
||||
player = activity.players[req_player].actor
|
||||
|
||||
if player.node.hockey != True:
|
||||
player.node.hockey = True
|
||||
|
||||
else:
|
||||
player.node.hockey = False
|
||||
|
|
@ -1,287 +0,0 @@
|
|||
from .Handlers import handlemsg, handlemsg_all, send, clientid_to_myself, sendchat
|
||||
from playersData import pdata
|
||||
# from tools.whitelist import add_to_white_list, add_commit_to_logs
|
||||
from serverData import serverdata
|
||||
import ba,os,json
|
||||
from datetime import datetime, timedelta
|
||||
import _ba
|
||||
import time
|
||||
import setting
|
||||
import ba.internal
|
||||
import _thread
|
||||
import set
|
||||
import random
|
||||
import setting
|
||||
from stats import mystats
|
||||
from bastd.gameutils import SharedObjects
|
||||
from tools import playlist
|
||||
from tools import logger, mongo
|
||||
import set
|
||||
import threading
|
||||
import json
|
||||
Commands = ['cjt', 'checkjointime', 'shop', 'donate','removepaideffect']
|
||||
CommandAliases = ['give', 'buy', 'cts', 'stc', 'rpe', 'scoretocash', 'cashtoscore']
|
||||
|
||||
BANK_PATH = _ba.env().get("python_directory_user", "") + "/bank.json"
|
||||
base_path = os.path.join(_ba.env()['python_directory_user'], "stats" + os.sep)
|
||||
statsfile = base_path + 'stats.json'
|
||||
python_path = _ba.env()["python_directory_user"]
|
||||
settings = setting.get_settings_data()
|
||||
ticket = settings["CurrencyType"]["CurrencyName"]
|
||||
tic = settings["CurrencyType"]["Currency"] #dont change this or it will give an error
|
||||
|
||||
|
||||
|
||||
def CoinCommands(command, arguments, clientid, accountid):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
if command == 'shop':
|
||||
shop(arguments, clientid)
|
||||
|
||||
elif command in ['scoretocash', 'stc']:
|
||||
stc(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['cashtoscore', 'cts']:
|
||||
cts(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['donate', 'give']:
|
||||
donate(arguments, clientid, accountid)
|
||||
|
||||
elif command == 'buy':
|
||||
buy(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['rpe', 'removepaideffect']:
|
||||
rpe(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['cjt', 'checkjointime']:
|
||||
check_claim_time(arguments, clientid, accountid)
|
||||
|
||||
|
||||
def getcoins(accountid: str):
|
||||
with open(BANK_PATH, 'r') as f:
|
||||
coins = json.loads(f.read())
|
||||
if accountid in coins:
|
||||
return coins[accountid]
|
||||
|
||||
def getstats():
|
||||
f = open(statsfile, 'r')
|
||||
return json.loads(f.read())
|
||||
|
||||
|
||||
def addcoins(accountid: str, amount: int):
|
||||
if os.path.exists(BANK_PATH):
|
||||
with open(BANK_PATH) as f:
|
||||
bank = json.loads(f.read())
|
||||
else:
|
||||
bank = {}
|
||||
if accountid not in bank:
|
||||
bank[accountid] = 0
|
||||
bank[accountid] += amount
|
||||
with open(BANK_PATH, 'w') as f:
|
||||
f.write(json.dumps(bank))
|
||||
if amount > 0:
|
||||
ba.playsound(ba.getsound("cashRegister"))
|
||||
print('Transaction successful')
|
||||
|
||||
def addcoin(accountid: str, amount: int):
|
||||
if os.path.exists(BANK_PATH):
|
||||
with open(BANK_PATH) as f:
|
||||
bank = json.loads(f.read())
|
||||
else:
|
||||
bank = {}
|
||||
if accountid not in bank:
|
||||
bank[accountid] = 0
|
||||
bank[accountid] += amount
|
||||
with open(BANK_PATH, 'w') as f:
|
||||
f.write(json.dumps(bank))
|
||||
if amount > 0:
|
||||
print('Transaction successful')
|
||||
|
||||
|
||||
def shop(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
string = '==You can buy following items==\n'
|
||||
if a == []:
|
||||
send("Usage: /shop commands, /shop effects", clientid)
|
||||
elif a[0].startswith('effects'):
|
||||
for x in set.availableeffects:
|
||||
string += f"{x} ---- {tic}{str(set.availableeffects[x])} ---- for 1 day\n"
|
||||
send(string, clientid)
|
||||
elif a[0].startswith('commands'):
|
||||
separator = ' '
|
||||
for x in set.availablecommands:
|
||||
string += f"{x}----{tic}{str(set.availablecommands[x])}{separator}"
|
||||
if separator == ' ': separator = '\n'
|
||||
else: separator = ' '
|
||||
ba.screenmessage(string, transient=True, color=(1, 1, 1), clients=[clientid])
|
||||
else:
|
||||
send("Usage: /shop commands or /shop effects", clientid)
|
||||
|
||||
|
||||
def check_claim_time(arguments, clientid, accountid):
|
||||
customers = pdata.get_custom()['coin_claim']
|
||||
if accountid in customers:
|
||||
if customers:
|
||||
expiry = datetime.strptime(customers[accountid]['expiry'], '%d-%m-%Y %H:%M:%S')
|
||||
remaining_time_seconds = int((expiry - datetime.now()).total_seconds())
|
||||
|
||||
# Calculate hours, minutes, and seconds
|
||||
hours = remaining_time_seconds // 3600
|
||||
minutes = (remaining_time_seconds % 3600) // 60
|
||||
seconds = remaining_time_seconds % 60
|
||||
send(f"Time remaining until your next join coin claim: {hours}:{minutes}:{seconds}", clientid)
|
||||
|
||||
|
||||
def stc(arguments, clientid, accountid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player, exit_result=None):
|
||||
try:
|
||||
score = int(a[0])
|
||||
stats = mystats.get_all_stats()
|
||||
havescore = stats[accountid]['scores']
|
||||
if havescore < score:
|
||||
send(f"Not enough scores to perform the transaction", clientid)
|
||||
send(f"You have {havescore} Score only....", clientid)
|
||||
elif score < 500:
|
||||
send(f"You can only convert more than 500 scores", clientid)
|
||||
else:
|
||||
stats[accountid]['scores'] -= score
|
||||
equivalentCoins = int(score / 5 * 0.9)
|
||||
addcoins(accountid, equivalentCoins)
|
||||
mystats.dump_stats(stats)
|
||||
ba.screenmessage('Transaction Successful', color=(0,1,0))
|
||||
_ba.chatmessage(f"{str(equivalentCoins)}{tic} added to your account. [10% transaction fee deducted]")
|
||||
thread=threading.Thread(target=mystats.refreshStats)
|
||||
thread.start()
|
||||
except:
|
||||
send("Usage: /scoretocash or stc amount_of_score", clientid)
|
||||
|
||||
def cts(arguments, clientid, accountid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player, exit_result=None):
|
||||
try:
|
||||
coins = int(a[0])
|
||||
havecoins = getcoins(accountid)
|
||||
if havecoins < coins:
|
||||
send(f"Not enough {tic}{ticket} to perform the transaction", clientid)
|
||||
send(f"You have {havecoins}{tic} only....", clientid)
|
||||
elif coins < 100:
|
||||
send(f"You can only convert more than 100{tic}", clientid)
|
||||
else:
|
||||
addcoins(accountid, coins * -1)
|
||||
stats = mystats.get_all_stats()
|
||||
equivalentScore = int(coins * 5 * 0.9)
|
||||
stats[accountid]['scores'] += equivalentScore
|
||||
mystats.dump_stats(stats)
|
||||
ba.playsound(ba.getsound("cashRegister"))
|
||||
ba.screenmessage(f'Transaction Successful', color=(0,1,0))
|
||||
_ba.chatmessage(f"{str(equivalentScore)} scores added to your account stats. [10% transaction fee deducted]")
|
||||
thread=threading.Thread(target=mystats.refreshStats)
|
||||
thread.start()
|
||||
except:
|
||||
send("Usage: /cashtoscore or cts amount_of_cash", clientid)
|
||||
|
||||
|
||||
def donate(arguments, clientid, accountid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if len(a) < 2:
|
||||
ba.screenmessage("Usage: /donate [amount] [clientid of player]", transient=True, clients=[clientid])
|
||||
else:
|
||||
havecoins = getcoins(accountid)
|
||||
transfer = int(a[0])
|
||||
if transfer < 100:
|
||||
send(f"You can only transfer more than 100{tic}.", clientid)
|
||||
return
|
||||
sendersID = accountid
|
||||
receiversID = None
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(a[1]):
|
||||
receiversID = i.get_v1_account_id()
|
||||
pname = i.getname(full=True, icon=True)
|
||||
if i.inputdevice.client_id == clientid:
|
||||
name = i.getname(full=True, icon=True)
|
||||
if None not in [sendersID, receiversID]:
|
||||
if sendersID == receiversID:
|
||||
send(f"You can't transfer to your own account", clientid)
|
||||
elif getcoins(sendersID) < transfer:
|
||||
send(f"Not enough {tic}{ticket} to perform the transaction", clientid)
|
||||
send(f"You have {havecoins}{tic} only....", clientid)
|
||||
else:
|
||||
addcoins(sendersID, transfer * -1)
|
||||
addcoins(receiversID, transfer)
|
||||
ba.playsound(ba.getsound("cashRegister"))
|
||||
ba.screenmessage(f'Transaction Successful', color=(0,1,0))
|
||||
_ba.chatmessage(f"Successfully transfered {transfer}{tic} into {pname}'s account.")
|
||||
else:
|
||||
send(f"player not found", clientid)
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
ba.screenmessage('An error occurred. Check the console for details.', transient=True, clients=[clientid])
|
||||
|
||||
|
||||
def buy(arguments, clientid, accountid):
|
||||
global effectCustomers
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
if a == []:
|
||||
_ba.chatmessage('Usage: /buy item_name')
|
||||
elif a[0] in set.availableeffects:
|
||||
effect = a[0]
|
||||
costofeffect = set.availableeffects[effect]
|
||||
havecoins = getcoins(accountid)
|
||||
if havecoins >= costofeffect:
|
||||
customers = pdata.get_custom()['paideffects']
|
||||
if accountid not in customers:
|
||||
setdate = settings["Paideffects"]["timedelta"]
|
||||
settime = int(settings["Paideffects"]["ExpriyPaideffectTime"])
|
||||
# Map unit string to timedelta attribute
|
||||
unit_map = {'years': 'years', 'days': 'days', 'hours': 'hours', 'minutes': 'minutes', 'seconds': 'seconds'}
|
||||
if setdate in unit_map:
|
||||
setdate_attr = unit_map[setdate]
|
||||
expiry = datetime.now() + timedelta(**{setdate_attr: settime})
|
||||
customers[accountid] = {'effect': effect, 'expiry': expiry.strftime('%d-%m-%Y %H:%M:%S')}
|
||||
addcoins(accountid, costofeffect * -1)
|
||||
_ba.chatmessage(f"Success! That cost you {str(costofeffect)}{tic}")
|
||||
else:
|
||||
_ba.chatmessage("Invalid timedelta unit in settings.")
|
||||
else:
|
||||
activeeffect = customers[accountid]['effect']
|
||||
till = customers[accountid]['expiry']
|
||||
send(f"You already have {activeeffect} effect active\nTill = {till}", clientid)
|
||||
else:
|
||||
send(f"You need {str(costofeffect)}{tic} for that, You have {str(havecoins)}{tic} only.", clientid)
|
||||
else: send(f"invalid item, try using '/shop effects", clientid)
|
||||
|
||||
|
||||
def rpe(arguments, clientid, accountid):
|
||||
try:
|
||||
custom = pdata.get_custom()['paideffects']
|
||||
aeffect = custom[accountid]['effect']
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
pdata.remove_paid_effect(accountid)
|
||||
send(f"paid {aeffect} effect have been removed Successfully", clientid)
|
||||
except:
|
||||
return
|
||||
|
|
@ -1,223 +0,0 @@
|
|||
from .Handlers import handlemsg, handlemsg_all
|
||||
import ba, _ba
|
||||
from tools import corelib
|
||||
from .. import floater
|
||||
|
||||
Commands = ['fly', 'invisible', 'headless', 'creepy', 'celebrate', 'speed', 'floater']
|
||||
CommandAliases = ['inv', 'hl', 'creep', 'celeb', 'flo']
|
||||
|
||||
|
||||
|
||||
|
||||
def ExcelCommand(command, arguments, clientid, accountid):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
|
||||
if command=='speed':
|
||||
speed(arguments)
|
||||
|
||||
elif command == 'fly':
|
||||
fly(arguments)
|
||||
|
||||
elif command in ['inv', 'invisible']:
|
||||
invi(arguments)
|
||||
|
||||
elif command in ['hl', 'headless']:
|
||||
headless(arguments)
|
||||
|
||||
elif command in ['creepy', 'creep']:
|
||||
creep(arguments)
|
||||
|
||||
elif command in ['celebrate', 'celeb']:
|
||||
celeb(arguments)
|
||||
|
||||
elif command in ['floater','flo']:
|
||||
floater(arguments,clientid)
|
||||
|
||||
|
||||
def floater(arguments, client_id):
|
||||
try:
|
||||
if not arguments:
|
||||
from ..floater import assign_flo_inputs # Import the function from floater module
|
||||
assign_flo_inputs(client_id) # Call the function directly
|
||||
else:
|
||||
from ..floater import assign_flo_inputs # Import the function from floater module
|
||||
assign_flo_inputs(arguments[0]) # Call the function directly
|
||||
except ImportError as e:
|
||||
print(f"ImportError: {e}")
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
|
||||
|
||||
def speed(arguments):
|
||||
if arguments ==[] or arguments==['']:
|
||||
return
|
||||
else:
|
||||
corelib.set_speed(float(arguments[0]))
|
||||
|
||||
|
||||
def fly(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for players in activity.players:
|
||||
if players.actor.node.fly != True:
|
||||
players.actor.node.fly = True
|
||||
else:
|
||||
players.actor.node.fly = False
|
||||
|
||||
else:
|
||||
try:
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
player = int(arguments[0])
|
||||
|
||||
if activity.players[player].actor.node.fly != True:
|
||||
activity.players[player].actor.node.fly = True
|
||||
else:
|
||||
activity.players[player].actor.node.fly = False
|
||||
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
def invi(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for i in activity.players:
|
||||
if i.actor.exists() and i.actor.node.torso_model != None:
|
||||
body = i.actor.node
|
||||
body.head_model = None
|
||||
body.torso_model = None
|
||||
body.upper_arm_model = None
|
||||
body.forearm_model = None
|
||||
body.pelvis_model = None
|
||||
body.hand_model = None
|
||||
body.toes_model = None
|
||||
body.upper_leg_model = None
|
||||
body.lower_leg_model = None
|
||||
body.style = 'cyborg'
|
||||
else:
|
||||
|
||||
player = int(arguments[0])
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
body = activity.players[player].actor.node
|
||||
|
||||
if body.torso_model != None:
|
||||
body.head_model = None
|
||||
body.torso_model = None
|
||||
body.upper_arm_model = None
|
||||
body.forearm_model = None
|
||||
body.pelvis_model = None
|
||||
body.hand_model = None
|
||||
body.toes_model = None
|
||||
body.upper_leg_model = None
|
||||
body.lower_leg_model = None
|
||||
body.style = 'cyborg'
|
||||
|
||||
|
||||
|
||||
|
||||
def headless(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for players in activity.players:
|
||||
|
||||
node = players.actor.node
|
||||
if node.head_model != None:
|
||||
node.head_model = None
|
||||
node.style='cyborg'
|
||||
|
||||
else:
|
||||
try:
|
||||
player = int(arguments[0])
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
node = activity.players[player].actor.node
|
||||
|
||||
if node.head_model != None:
|
||||
node.head_model = None
|
||||
node.style='cyborg'
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
def creep(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for players in activity.players:
|
||||
node = players.actor.node
|
||||
|
||||
if node.head_model != None:
|
||||
node.head_model = None
|
||||
node.handlemessage(ba.PowerupMessage(poweruptype='punch'))
|
||||
node.handlemessage(ba.PowerupMessage(poweruptype='shield'))
|
||||
|
||||
else:
|
||||
try:
|
||||
player = int(arguments[0])
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
node = activity.players[player].actor.node
|
||||
|
||||
if node.head_model != None:
|
||||
node.head_model = None
|
||||
node.handlemessage(ba.PowerupMessage(poweruptype='punch'))
|
||||
node.handlemessage(ba.PowerupMessage(poweruptype='shield'))
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
|
||||
def celeb(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
handlemsg_all(ba.CelebrateMessage())
|
||||
|
||||
else:
|
||||
try:
|
||||
player = int(arguments[0])
|
||||
handlemsg(player, ba.CelebrateMessage())
|
||||
except:
|
||||
return
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
""" Some useful handlers to reduce lot of code """
|
||||
import _ba, ba
|
||||
import ba.internal
|
||||
|
||||
|
||||
|
||||
def send(msg, clientid):
|
||||
"""Shortcut To Send Private Msg To Client"""
|
||||
for m in msg.split("\n"):
|
||||
ba.internal.chatmessage(str(m), clients=[clientid])
|
||||
_ba.screenmessage(str(msg), transient=True, clients=[clientid])
|
||||
|
||||
def sendchatclid(msg, clientid):
|
||||
"""Shortcut To Send Private Msg To Client"""
|
||||
for m in msg.split("\n"):
|
||||
ba.internal.chatmessage(str(m), clients=[clientid])
|
||||
|
||||
def sendmsgclid(msg, clientid):
|
||||
"""Shortcut To Send Private Msg To Client"""
|
||||
_ba.screenmessage(str(msg), transient=True, clients=[clientid])
|
||||
|
||||
def sendall(msg):
|
||||
"""Shortcut To Send Private Msg To Client"""
|
||||
for m in msg.split("\n"):
|
||||
ba.internal.chatmessage(str(m))
|
||||
_ba.screenmessage(str(msg), transient=True)
|
||||
|
||||
def sendchat(msg):
|
||||
"""Shortcut To Send Private Msg To Client"""
|
||||
for m in msg.split("\n"):
|
||||
ba.internal.chatmessage(str(m))
|
||||
|
||||
def clientid_to_myself(clientid):
|
||||
"""Return Player Index Of Self Player"""
|
||||
|
||||
for i , player in enumerate(_ba.get_foreground_host_activity().players):
|
||||
if player.sessionplayer.inputdevice.client_id == clientid:
|
||||
return i
|
||||
|
||||
def handlemsg(client, msg):
|
||||
"""Handles Spaz Msg For Single Player"""
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
activity.players[client].actor.node.handlemessage(msg)
|
||||
|
||||
def handlemsg_all(msg):
|
||||
"""Handle Spaz message for all players in activity"""
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
for i in activity.players:
|
||||
i.actor.node.handlemessage(msg)
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,881 +0,0 @@
|
|||
from .Handlers import handlemsg, handlemsg_all, send, clientid_to_myself, sendall, sendchat
|
||||
from playersData import pdata
|
||||
# from tools.whitelist import add_to_white_list, add_commit_to_logs
|
||||
from serverData import serverdata
|
||||
import ba
|
||||
import _ba
|
||||
import time
|
||||
import setting
|
||||
import ba.internal
|
||||
import _thread
|
||||
import random
|
||||
from stats import mystats
|
||||
from bastd.gameutils import SharedObjects
|
||||
from tools import playlist
|
||||
from tools import logger
|
||||
Commands = ['recents', 'info', 'cm', 'createteam', 'unban', 'showid', 'hideid', 'lm', 'gp', 'party', 'quit', 'kickvote', 'maxplayers', 'playlist', 'server', 'ban', 'kick', 'remove', 'end', 'quit', 'mute', 'unmute', 'slowmo', 'nv', 'dv', 'pause',
|
||||
'cameramode', 'createrole', 'ct', 'reflections', 'partyname', 'addrole', 'removerole', 'addcommand', 'addcmd', 'removecommand', 'getroles', 'removecmd', 'changetag', 'customtag', 'customeffect', 'removeeffect', 'removetag', 'add', 'spectators', 'lobbytime']
|
||||
CommandAliases = ['max', 'rm', 'next', 'restart', 'mutechat', 'unmutechat', 'sm',
|
||||
'slow', 'night', 'fr', 'floorReflection', 'frefl', 'day', 'pn', 'pausegame', 'camera_mode', 'rotate_camera', 'effect']
|
||||
|
||||
|
||||
def ExcelCommand(command, arguments, clientid, accountid):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
if command in ['recents']:
|
||||
get_recents(clientid)
|
||||
if command in ['info']:
|
||||
get_player_info(arguments, clientid)
|
||||
if command in ['maxplayers', 'max']:
|
||||
changepartysize(arguments)
|
||||
if command in ['createteam', 'ct']:
|
||||
create_team(arguments)
|
||||
elif command == 'playlist':
|
||||
changeplaylist(arguments)
|
||||
elif command == 'server':
|
||||
server(arguments, clientid)
|
||||
elif command == 'kick':
|
||||
kick(arguments, clientid, accountid)
|
||||
elif command == 'ban':
|
||||
ban(arguments, clientid, accountid)
|
||||
elif command == 'unban':
|
||||
unban(arguments, clientid, accountid)
|
||||
elif command in ['end', 'next']:
|
||||
end(arguments)
|
||||
elif command == 'kickvote':
|
||||
kikvote(arguments, clientid)
|
||||
elif command == 'hideid':
|
||||
hide_player_spec()
|
||||
elif command == "showid":
|
||||
show_player_spec()
|
||||
elif command == 'lm':
|
||||
last_msgs(clientid)
|
||||
|
||||
elif command == 'gp':
|
||||
get_profiles(arguments, clientid)
|
||||
|
||||
elif command == 'cm':
|
||||
cm(arguments, clientid)
|
||||
|
||||
elif command == 'party':
|
||||
party_toggle(arguments)
|
||||
|
||||
elif command in ['quit', 'restart']:
|
||||
quit(arguments)
|
||||
|
||||
elif command in ['mute', 'mutechat']:
|
||||
mute(arguments, clientid)
|
||||
|
||||
elif command in ['unmute', 'unmutechat']:
|
||||
un_mute(arguments, clientid)
|
||||
|
||||
elif command in ['remove', 'rm']:
|
||||
remove(arguments)
|
||||
|
||||
elif command in ['sm', 'slow', 'slowmo']:
|
||||
slow_motion()
|
||||
|
||||
elif command in ['fr', 'floorReflection', 'frefl']:
|
||||
reflection(arguments)
|
||||
|
||||
elif command in ['nv', 'night']:
|
||||
nv(arguments)
|
||||
|
||||
elif command in ['dv', 'day']:
|
||||
dv(arguments)
|
||||
|
||||
elif command in ['pause', 'pausegame']:
|
||||
pause()
|
||||
|
||||
elif command in ['cameraMode', 'camera_mode', 'rotate_camera']:
|
||||
rotate_camera()
|
||||
|
||||
elif command == 'createrole':
|
||||
create_role(arguments)
|
||||
|
||||
elif command == 'addrole':
|
||||
add_role_to_player(arguments)
|
||||
|
||||
elif command == 'removerole':
|
||||
remove_role_from_player(arguments)
|
||||
|
||||
elif command == 'getroles':
|
||||
get_roles_of_player(arguments, clientid)
|
||||
|
||||
elif command == 'reflections':
|
||||
reflections(arguments, clientid)
|
||||
|
||||
elif command in ['pn', 'partyname']:
|
||||
partyname(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['addcommand', 'addcmd']:
|
||||
add_command_to_role(arguments)
|
||||
|
||||
elif command in ['removecommand', 'removecmd']:
|
||||
remove_command_to_role(arguments)
|
||||
|
||||
elif command == 'changetag':
|
||||
change_role_tag(arguments)
|
||||
|
||||
elif command == 'customtag':
|
||||
set_custom_tag(arguments)
|
||||
|
||||
elif command in ['customeffect', 'effect']:
|
||||
set_custom_effect(arguments)
|
||||
|
||||
elif command in ['removetag']:
|
||||
remove_custom_tag(arguments)
|
||||
|
||||
elif command in ['removeeffect']:
|
||||
remove_custom_effect(arguments)
|
||||
|
||||
# elif command in ['add', 'whitelist']:
|
||||
# whitelst_it(accountid, arguments)
|
||||
|
||||
elif command == 'spectators':
|
||||
spectators(arguments)
|
||||
|
||||
elif command == 'lobbytime':
|
||||
change_lobby_check_time(arguments)
|
||||
|
||||
|
||||
def create_team(arguments):
|
||||
if len(arguments) == 0:
|
||||
ba.internal.chatmessage("enter team name")
|
||||
else:
|
||||
from ba._team import SessionTeam
|
||||
_ba.get_foreground_host_session().sessionteams.append(SessionTeam(team_id=len(_ba.get_foreground_host_session().sessionteams) + 1, name=str(arguments[0]), color=(random.uniform(0, 1.2), random.uniform(
|
||||
0, 1.2), random.uniform(0, 1.2))))
|
||||
from ba._lobby import Lobby
|
||||
_ba.get_foreground_host_session().lobby = Lobby()
|
||||
|
||||
|
||||
def hide_player_spec():
|
||||
_ba.hide_player_device_id(True)
|
||||
|
||||
|
||||
def show_player_spec():
|
||||
_ba.hide_player_device_id(False)
|
||||
|
||||
|
||||
def get_player_info(arguments, client_id):
|
||||
if len(arguments) == 0:
|
||||
send("invalid client id", client_id)
|
||||
for account in serverdata.recents:
|
||||
if account['client_id'] == int(arguments[0]):
|
||||
send(pdata.get_detailed_info(account["pbid"]), client_id)
|
||||
|
||||
|
||||
def get_recents(client_id):
|
||||
for players in serverdata.recents:
|
||||
send(
|
||||
f"{players['client_id']} {players['deviceId']} {players['pbid']}", client_id)
|
||||
|
||||
|
||||
def changepartysize(arguments):
|
||||
if len(arguments) == 0:
|
||||
ba.internal.chatmessage("enter number")
|
||||
else:
|
||||
ba.internal.set_public_party_max_size(int(arguments[0]))
|
||||
ba.internal.chatmessage("Maximum players set to " + str(int(arguments[0])))
|
||||
|
||||
|
||||
def changeplaylist(arguments):
|
||||
if len(arguments) == 0:
|
||||
ba.internal.chatmessage("enter list code or name")
|
||||
else:
|
||||
if arguments[0] == 'coop':
|
||||
serverdata.coopmode = True
|
||||
else:
|
||||
serverdata.coopmode = False
|
||||
playlist.setPlaylist(arguments[0])
|
||||
return
|
||||
|
||||
|
||||
def server(arguments, client_id):
|
||||
if arguments == []:
|
||||
ba.internal.chatmessage("Usage: /server [name] <text to send>", clients=[client_id])
|
||||
else:
|
||||
message = ""
|
||||
for i in range(1, len(arguments)):
|
||||
message += arguments[i] + ''
|
||||
ba.internal.chatmessage(message, sender_override=arguments[0])
|
||||
|
||||
|
||||
def partyname(arguments, client_id, ac_id):
|
||||
if arguments == []:
|
||||
ba.internal.chatmessage("Usage: /partyname Name of party", clients=[client_id])
|
||||
else:
|
||||
stats = mystats.get_stats_by_id(ac_id)
|
||||
myself = stats["name"]
|
||||
name = " "
|
||||
for word in arguments:
|
||||
name+= word+" "
|
||||
try:
|
||||
ba.internal.set_public_party_name(name)
|
||||
_ba.screenmessage(f"{myself} Changed PartyName To {name}", color=(1,1,1), transient=True)
|
||||
except:
|
||||
_ba.screenmessage("failed to change PartyName", color=(1,1,1), transient=True, clients=[client_id])
|
||||
|
||||
|
||||
def kick(arguments, clientid, ac_id):
|
||||
try:
|
||||
# Extract client IDs
|
||||
cl_ids = [int(arg) for arg in arguments]
|
||||
|
||||
# Get display string of the player issuing the command
|
||||
for me in ba.internal.get_game_roster():
|
||||
if me["client_id"] == clientid:
|
||||
myself = me["display_string"]
|
||||
break
|
||||
|
||||
# Iterate over the provided client IDs
|
||||
for cl_id in cl_ids:
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
logger.log(f'kicked {ros["display_string"]}')
|
||||
sendchat(f'{myself} kicked {ros["display_string"]} Goodbye 👋')
|
||||
ba.internal.disconnect_client(cl_id) # Disconnect the player being kicked
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def kikvote(arguments, clientid):
|
||||
if arguments == [] or arguments == [''] or len(arguments) < 2:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'enable':
|
||||
if arguments[1] == 'all':
|
||||
_ba.set_enable_default_kick_voting(True)
|
||||
else:
|
||||
try:
|
||||
cl_id = int(arguments[1])
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
pdata.enable_kick_vote(ros["account_id"])
|
||||
logger.log(
|
||||
f'kick vote enabled for {ros["account_id"]} {ros["display_string"]}')
|
||||
send(
|
||||
"Upon server restart, Kick-vote will be enabled for this person", clientid)
|
||||
return
|
||||
except:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'disable':
|
||||
if arguments[1] == 'all':
|
||||
_ba.set_enable_default_kick_voting(False)
|
||||
else:
|
||||
try:
|
||||
cl_id = int(arguments[1])
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
_ba.disable_kickvote(ros["account_id"])
|
||||
send("Kick-vote disabled for this person", clientid)
|
||||
logger.log(
|
||||
f'kick vote disabled for {ros["account_id"]} {ros["display_string"]}')
|
||||
pdata.disable_kick_vote(
|
||||
ros["account_id"], 2, "by chat command")
|
||||
return
|
||||
except:
|
||||
return
|
||||
else:
|
||||
return
|
||||
|
||||
|
||||
def last_msgs(clientid):
|
||||
for i in ba.internal.get_chat_messages():
|
||||
send(i, clientid)
|
||||
|
||||
|
||||
def get_profiles(arguments, clientid):
|
||||
try:
|
||||
playerID = int(arguments[0])
|
||||
num = 1
|
||||
for i in ba.internal.get_foreground_host_session().sessionplayers[playerID].inputdevice.get_player_profiles():
|
||||
try:
|
||||
send(f"{num})- {i}", clientid)
|
||||
num += 1
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def party_toggle(arguments):
|
||||
if arguments == ['public']:
|
||||
ba.internal.set_public_party_enabled(True)
|
||||
ba.internal.chatmessage("party is public now")
|
||||
elif arguments == ['private']:
|
||||
ba.internal.set_public_party_enabled(False)
|
||||
ba.internal.chatmessage("party is private now")
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
def end(arguments):
|
||||
if arguments == [] or arguments == ['']:
|
||||
try:
|
||||
with _ba.Context(_ba.get_foreground_host_activity()):
|
||||
_ba.get_foreground_host_activity().end_game()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def ban(arguments, clientid, ac_id):
|
||||
try:
|
||||
# Extract client IDs and duration
|
||||
cl_ids = [int(arg) for arg in arguments]
|
||||
duration = int(arguments[-1]) if len(arguments) >= 2 else 0.5
|
||||
|
||||
# Get display string of the player issuing the command
|
||||
for me in ba.internal.get_game_roster():
|
||||
if me["client_id"] == clientid:
|
||||
myself = me["display_string"]
|
||||
break
|
||||
|
||||
# Iterate over the provided client IDs
|
||||
for cl_id in cl_ids:
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
pdata.ban_player(ros['account_id'], duration, "by chat command")
|
||||
logger.log(f'banned {ros["display_string"]} by chat command')
|
||||
sendchat(f'{myself} banned {ros["display_string"]} Goodbye 👋')
|
||||
|
||||
# Disconnect the banned player
|
||||
ba.internal.disconnect_client(cl_id)
|
||||
|
||||
## backup part
|
||||
for account in serverdata.recents: # backup case if player left the server
|
||||
if account['client_id'] in cl_ids:
|
||||
pdata.ban_player(account["pbid"], duration, "by chat command")
|
||||
logger.log(f'banned {account["deviceId"]} by chat command, recents')
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def unban(arguments, clientid, ac_id):
|
||||
try:
|
||||
cl_id = int(arguments[0])
|
||||
for me in ba.internal.get_game_roster():
|
||||
if me["client_id"] == clientid:
|
||||
myself = me["display_string"]
|
||||
for account in serverdata.recents: # backup unban if u by mistakely ban anyone
|
||||
if account['client_id'] == cl_id:
|
||||
pdata.unban_player(account["pbid"])
|
||||
logger.log(
|
||||
f'unbanned {account["deviceId"]} by chat command')
|
||||
sendchat(f'{myself} unbanned {account["deviceId"]} from recents')
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def quit(arguments):
|
||||
if arguments == [] or arguments == ['']:
|
||||
logger.log(
|
||||
f'Server Restarting, Please Join in a moment !')
|
||||
sendall("Server Restarting, Please Join in a moment !")
|
||||
ba.quit()
|
||||
|
||||
|
||||
def mute(arguments, clientid):
|
||||
if len(arguments) == 0:
|
||||
serverdata.muted = True
|
||||
logger.log("Server muted by chat command")
|
||||
sendchat("Server muted")
|
||||
try:
|
||||
cl_id = int(arguments[0])
|
||||
duration = int(arguments[1]) if len(arguments) >= 2 else 0.5
|
||||
for me in ba.internal.get_game_roster():
|
||||
if me["client_id"] == clientid:
|
||||
myself = me["display_string"]
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
ac_id = ros['account_id']
|
||||
logger.log(f'muted {ros["display_string"]}')
|
||||
pdata.mute(ac_id, duration, "muted by chat command")
|
||||
sendchat(f'{myself} muted {ros["display_string"]}')
|
||||
return
|
||||
for account in serverdata.recents: # backup case if player left the server
|
||||
if account['client_id'] == int(arguments[0]):
|
||||
pdata.mute(account["pbid"], duration,
|
||||
"muted by chat command, from recents")
|
||||
except:
|
||||
pass
|
||||
return
|
||||
|
||||
|
||||
def un_mute(arguments, clientid):
|
||||
try:
|
||||
if len(arguments) == 0:
|
||||
# Unmute the entire server
|
||||
serverdata.muted = False
|
||||
logger.log("Server unmuted by chat command")
|
||||
sendchat("Server unmuted")
|
||||
return
|
||||
|
||||
cl_id = int(arguments[0])
|
||||
for me in ba.internal.get_game_roster():
|
||||
if me["client_id"] == clientid:
|
||||
myself = me["display_string"]
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros["client_id"] == cl_id:
|
||||
pdata.unmute(ros['account_id'])
|
||||
logger.log(f'unmuted {ros["display_string"]} by chat command')
|
||||
sendchat(f'{myself} unmuted {ros["display_string"]}')
|
||||
return
|
||||
for account in serverdata.recents: # backup case if player left the server
|
||||
if account['client_id'] == cl_id:
|
||||
pdata.unmute(account["pbid"])
|
||||
logger.log(
|
||||
f'unmuted {account["display_string"]} by chat command, recents')
|
||||
sendchat(f'{myself} unmuted {account["display_string"]} from recent players')
|
||||
return
|
||||
# If the specified player is not found
|
||||
logger.error(f"Player with client ID {cl_id} not found")
|
||||
sendchat("Player not found. Make sure to specify a valid player ID.")
|
||||
except ValueError:
|
||||
# Handle the case where int(arguments[0]) fails to convert to an integer
|
||||
logger.error("Invalid argument provided for un_mute function.")
|
||||
sendchat("Invalid argument provided. Make sure to specify a valid player ID.")
|
||||
except Exception as e:
|
||||
# Handle other exceptions (e.g., network errors, etc.)
|
||||
logger.error(f"An error occurred in un_mute function: {e}")
|
||||
sendchat("An error occurred while processing the command. Please try again later.")
|
||||
|
||||
|
||||
def remove(arguments):
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
return
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
i.remove_from_game()
|
||||
|
||||
else:
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[0]):
|
||||
i.remove_from_game()
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def slow_motion():
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if activity.globalsnode.slow_motion != True:
|
||||
activity.globalsnode.slow_motion = True
|
||||
|
||||
else:
|
||||
activity.globalsnode.slow_motion = False
|
||||
|
||||
|
||||
def reflection(arguments):
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if activity.globalsnode.floor_reflection != True:
|
||||
activity.globalsnode.floor_reflection = arguments[0]
|
||||
|
||||
else:
|
||||
activity.globalsnode.floor_reflection = False
|
||||
|
||||
|
||||
def nv(arguments):
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
|
||||
if activity.globalsnode.tint != (0.5, 0.7, 1.0):
|
||||
activity.globalsnode.tint = (0.5, 0.7, 1.0)
|
||||
else:
|
||||
# will fix this soon
|
||||
pass
|
||||
|
||||
elif arguments[0] == 'off':
|
||||
if activity.globalsnode.tint != (0.5, 0.7, 1.0):
|
||||
return
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
def dv(arguments):
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
|
||||
if activity.globalsnode.tint != (1, 1, 1):
|
||||
activity.globalsnode.tint = (1, 1, 1)
|
||||
else:
|
||||
# will fix this soon
|
||||
pass
|
||||
|
||||
elif arguments[0] == 'off':
|
||||
if activity.globalsnode.tint != (1, 1, 1):
|
||||
return
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
def reflections(arguments, clientid):
|
||||
if len(arguments) < 2:
|
||||
ba.internal.chatmessage("Usage: /reflections type (1/0) scale", clients=[clientid])
|
||||
else:
|
||||
rs = [
|
||||
int(arguments[1])]
|
||||
typee = 'soft' if int(arguments[0]) == 0 else 'powerup'
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node.reflection = typee
|
||||
_ba.get_foreground_host_activity().map.node.reflection_scale = rs
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.bg.reflection = typee
|
||||
_ba.get_foreground_host_activity().map.bg.reflection_scale = rs
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.floor.reflection = typee
|
||||
_ba.get_foreground_host_activity().map.floor.reflection_scale = rs
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.center.reflection = typee
|
||||
_ba.get_foreground_host_activity().map.center.reflection_scale = rs
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def cm(arguments, clientid):
|
||||
with _ba.Context(_ba.get_foreground_host_activity()):
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if arguments == []:
|
||||
time = 2
|
||||
else:
|
||||
time = int(arguments[0])
|
||||
op = 0.08
|
||||
std = activity.globalsnode.vignette_outer
|
||||
ba.animate_array(activity.globalsnode, 'vignette_outer', 3, {0:activity.globalsnode.vignette_outer, 10.0:(0,1,0)})
|
||||
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.bg.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.bg.node.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node1.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node2.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node3.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.steps.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.floor.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.center.opacity = op
|
||||
except:
|
||||
pass
|
||||
|
||||
def off():
|
||||
op = 0.57
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.bg.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.bg.node.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node1.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node2.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.node3.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.steps.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.floor.opacity = op
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
_ba.get_foreground_host_activity().map.center.opacity = op
|
||||
except:
|
||||
pass
|
||||
ba.animate_array(activity.globalsnode, 'vignette_outer', 3, {0:activity.globalsnode.vignette_outer, 100:std})
|
||||
ba.Timer(2.0, ba.Call(off))
|
||||
|
||||
|
||||
def pause():
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if activity.globalsnode.paused != True:
|
||||
activity.globalsnode.paused = True
|
||||
|
||||
else:
|
||||
activity.globalsnode.paused = False
|
||||
|
||||
|
||||
def rotate_camera():
|
||||
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
if activity.globalsnode.camera_mode != 'rotate':
|
||||
activity.globalsnode.camera_mode = 'rotate'
|
||||
|
||||
else:
|
||||
activity.globalsnode.camera_mode = 'follow'
|
||||
|
||||
|
||||
def create_role(arguments):
|
||||
try:
|
||||
pdata.create_role(arguments[0])
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def add_role_to_player(arguments):
|
||||
try:
|
||||
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[1]):
|
||||
roles = pdata.add_player_role(
|
||||
arguments[0], i.get_v1_account_id())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def remove_role_from_player(arguments):
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[1]):
|
||||
roles = pdata.remove_player_role(
|
||||
arguments[0], i.get_v1_account_id())
|
||||
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def get_roles_of_player(arguments, clientid):
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
roles = []
|
||||
reply = ""
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[0]):
|
||||
roles = pdata.get_player_roles(i.get_v1_account_id())
|
||||
print(roles)
|
||||
for role in roles:
|
||||
reply = reply+role+","
|
||||
send(reply, clientid)
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def change_role_tag(arguments):
|
||||
try:
|
||||
pdata.change_role_tag(arguments[0], arguments[1])
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def set_custom_tag(arguments):
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[1]):
|
||||
roles = pdata.set_tag(arguments[0], i.get_v1_account_id())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def remove_custom_tag(arguments):
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == int(arguments[0]):
|
||||
pdata.remove_tag(i.get_v1_account_id())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def remove_custom_effect(arguments):
|
||||
try:
|
||||
# Extract effect(s) and client ID(s)
|
||||
if arguments[0].lower() == "all":
|
||||
client_ids = [int(arg) for arg in arguments[1:]]
|
||||
effects = None # No specific effects to remove
|
||||
else:
|
||||
effects = arguments[:-1] # All arguments except the last one (which is the client ID)
|
||||
client_ids = [int(arguments[-1])] # Convert client ID to integer
|
||||
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
|
||||
# Iterate over each client ID
|
||||
for client_id in client_ids:
|
||||
for player in session.sessionplayers:
|
||||
if player.inputdevice.client_id == client_id:
|
||||
if effects:
|
||||
# Remove specified effects for the player
|
||||
for effect in effects:
|
||||
pdata.remove_effect(player.get_v1_account_id(), effect)
|
||||
else:
|
||||
# Remove all effects for the player
|
||||
pdata.remove_all_effects(player.get_v1_account_id())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def set_custom_effect(arguments):
|
||||
try:
|
||||
# Extract effect(s) and client ID(s)
|
||||
effects = arguments[:-1] # All arguments except the last one (which is the client ID)
|
||||
client_ids = [int(arg) for arg in arguments[-1].split(',')] # Split client IDs if multiple are provided
|
||||
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
|
||||
# Iterate over each client ID
|
||||
for client_id in client_ids:
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == client_id:
|
||||
# Iterate over each effect and set it for the player
|
||||
for effect in effects:
|
||||
pdata.set_effect(effect, i.get_v1_account_id())
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
all_commands = ["changetag", "createrole", "addrole", "removerole", "addcommand", "addcmd", "removecommand", "removecmd", "kick", "remove", "rm", "end", "next", "quit", "restart", "mute", "mutechat", "unmute", "unmutechat", "sm", "slow", "slowmo", "nv", "night", "dv", "day", "pause", "pausegame", "cameraMode",
|
||||
"camera_mode", "rotate_camera", "kill", "die", "heal", "heath", "curse", "cur", "sleep", "sp", "superpunch", "gloves", "punch", "shield", "protect", "freeze", "ice", "unfreeze", "thaw", "gm", "godmode", "fly", "inv", "invisible", "hl", "headless", "creepy", "creep", "celebrate", "celeb", "spaz"]
|
||||
|
||||
|
||||
def add_command_to_role(arguments):
|
||||
try:
|
||||
if len(arguments) == 2:
|
||||
pdata.add_command_role(arguments[0], arguments[1])
|
||||
else:
|
||||
ba.internal.chatmessage("invalid command arguments")
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def remove_command_to_role(arguments):
|
||||
try:
|
||||
if len(arguments) == 2:
|
||||
pdata.remove_command_role(arguments[0], arguments[1])
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
# def whitelst_it(accountid : str, arguments):
|
||||
# settings = setting.get_settings_data()
|
||||
|
||||
# if arguments[0] == 'on':
|
||||
# if settings["white_list"]["whitelist_on"]:
|
||||
# ba.internal.chatmessage("Already on")
|
||||
# else:
|
||||
# settings["white_list"]["whitelist_on"] = True
|
||||
# setting.commit(settings)
|
||||
# ba.internal.chatmessage("whitelist on")
|
||||
# from tools import whitelist
|
||||
# whitelist.Whitelist()
|
||||
# return
|
||||
|
||||
# elif arguments[0] == 'off':
|
||||
# settings["white_list"]["whitelist_on"] = False
|
||||
# setting.commit(settings)
|
||||
# ba.internal.chatmessage("whitelist off")
|
||||
# return
|
||||
|
||||
# else:
|
||||
# rost = ba.internal.get_game_roster()
|
||||
|
||||
# for i in rost:
|
||||
# if i['client_id'] == int(arguments[0]):
|
||||
# add_to_white_list(i['account_id'], i['display_string'])
|
||||
# ba.internal.chatmessage(str(i['display_string'])+" whitelisted")
|
||||
# add_commit_to_logs(accountid+" added "+i['account_id'])
|
||||
|
||||
|
||||
def spectators(arguments):
|
||||
|
||||
if arguments[0] in ['on', 'off']:
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
if arguments[0] == 'on':
|
||||
settings["white_list"]["spectators"] = True
|
||||
setting.commit(settings)
|
||||
ba.internal.chatmessage("spectators on")
|
||||
|
||||
elif arguments[0] == 'off':
|
||||
settings["white_list"]["spectators"] = False
|
||||
setting.commit(settings)
|
||||
ba.internal.chatmessage("spectators off")
|
||||
|
||||
|
||||
def change_lobby_check_time(arguments):
|
||||
try:
|
||||
argument = int(arguments[0])
|
||||
except:
|
||||
ba.internal.chatmessage("must type number to change lobby check time")
|
||||
return
|
||||
settings = setting.get_settings_data()
|
||||
settings["white_list"]["lobbychecktime"] = argument
|
||||
setting.commit(settings)
|
||||
ba.internal.chatmessage(f"lobby check time is {argument} now")
|
||||
|
|
@ -1,615 +0,0 @@
|
|||
from .Handlers import handlemsg, handlemsg_all, send, clientid_to_myself
|
||||
from playersData import pdata
|
||||
from bastd.actor.zoomtext import ZoomText
|
||||
# from tools.whitelist import add_to_white_list, add_commit_to_logs
|
||||
from serverData import serverdata
|
||||
from chatHandle.ChatCommands.commands import NormalCommands as nc
|
||||
import ba
|
||||
import _ba,os,json
|
||||
import time
|
||||
import setting
|
||||
import ba.internal
|
||||
import _thread
|
||||
import random
|
||||
from stats import mystats
|
||||
from bastd.gameutils import SharedObjects
|
||||
from tools import playlist
|
||||
from tools import logger
|
||||
Commands = ['hug', 'icy', 'spaz', 'zombieall', 'boxall', 'texall', 'kickall', 'ooh', 'spazall', 'vcl', 'acl']
|
||||
CommandAliases = ['cc', 'ccall', 'control', 'prot', 'protect', 'zoommessage', 'zm', 'pme', 'zombie', 'rainbow', 'ooh', 'playsound', 'tex', 'hugall', 'box', 'ac', 'exchange', 'tint', 'say', 'playsound', 'admincmdlist', 'vipcmdlist']
|
||||
|
||||
|
||||
def NewCommands(command, arguments, clientid, accountid):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
if command == 'hug':
|
||||
hug(arguments, clientid)
|
||||
|
||||
elif command == 'hugall':
|
||||
hugall(arguments, clientid)
|
||||
|
||||
elif command in ['control', 'exchange']:
|
||||
control(arguments, clientid)
|
||||
|
||||
elif command == 'icy':
|
||||
icy(arguments, clientid)
|
||||
|
||||
elif command in ['cc', 'spaz']:
|
||||
spaz(arguments, clientid)
|
||||
|
||||
elif command in ['ccall', 'spazall']:
|
||||
spazall(arguments, clientid)
|
||||
|
||||
elif command == 'ac':
|
||||
ac(arguments, clientid)
|
||||
|
||||
elif command == 'tint':
|
||||
tint(arguments, clientid)
|
||||
|
||||
elif command == 'box':
|
||||
box(arguments, clientid)
|
||||
|
||||
elif command == 'boxall':
|
||||
boxall(arguments, clientid)
|
||||
|
||||
elif command == 'kickall':
|
||||
kickall(arguments, clientid)
|
||||
|
||||
elif command == 'tex':
|
||||
tex(arguments, clientid)
|
||||
|
||||
elif command == 'zombie':
|
||||
zombie(arguments, clientid)
|
||||
|
||||
elif command == 'zombieall':
|
||||
zombieall(arguments, clientid)
|
||||
|
||||
elif command == 'texall':
|
||||
texall(arguments, clientid)
|
||||
|
||||
elif command == 'say':
|
||||
server_chat(arguments, clientid)
|
||||
|
||||
elif command in ['acl', 'admincmdlist']:
|
||||
acl(arguments, clientid)
|
||||
|
||||
elif command == 'ooh':
|
||||
play_ooh_sound(arguments)
|
||||
|
||||
elif command in ['zm', 'zoommessage']:
|
||||
zm(arguments, clientid)
|
||||
|
||||
elif command == 'playsound':
|
||||
play_sound(arguments, clientid)
|
||||
|
||||
elif command in ['vcl', 'vipcmdlist']:
|
||||
vcl(arguments, clientid)
|
||||
|
||||
elif command in ['prot', 'protect']:
|
||||
protect_players(arguments, clientid)
|
||||
|
||||
elif command == 'pme':
|
||||
stats_to_clientid(arguments, clientid, accountid)
|
||||
|
||||
|
||||
def stats_to_clientid(arguments, clid, acid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
if arguments == [] or arguments == ['']:
|
||||
with ba.Context(player):
|
||||
send(f"Using: /pme [Clientid of player]", clid)
|
||||
else:
|
||||
cl_id = int(arguments[0])
|
||||
for pla in ba.internal.get_foreground_host_session().sessionplayers:
|
||||
if pla.inputdevice.client_id == cl_id:
|
||||
fname = pla.getname(full=True, icon=True)
|
||||
for roe in ba.internal.get_game_roster():
|
||||
if roe["client_id"] == cl_id:
|
||||
pbid = roe["account_id"]
|
||||
stats = mystats.get_stats_by_id(pbid)
|
||||
if stats:
|
||||
tickets = nc.getcoins(pbid)
|
||||
reply = (
|
||||
f"\ue048| Name: {fname}\n"
|
||||
f"\ue048| PB-ID: {stats['aid']}\n"
|
||||
f"\ue048| Tickets: {tickets}\U0001FA99\n"
|
||||
f"\ue048| Rank: {stats['rank']}\n"
|
||||
f"\ue048| Score: {stats['scores']}\n"
|
||||
f"\ue048| Games: {stats['games']}\n"
|
||||
f"\ue048| Kills: {stats['kills']}\n"
|
||||
f"\ue048| Deaths: {stats['deaths']}\n"
|
||||
f"\ue048| Avg.: {stats['avg_score']}\n"
|
||||
)
|
||||
send(reply, clid)
|
||||
else:
|
||||
areply = "Not played any match yet."
|
||||
send(areply, clid)
|
||||
|
||||
|
||||
def hug(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
if arguments == [] or arguments == ['']:
|
||||
with ba.Context(player):
|
||||
send(f"Using: /hugall [or] /hug [player1Index] [player2Index]", clientid)
|
||||
else:
|
||||
try:
|
||||
players[int(arguments[0])].actor.node.hold_node = players[int(arguments[1])].actor.node
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def hugall(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
with ba.Context(player):
|
||||
try:
|
||||
players[0].actor.node.hold_node = players[1].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[1].actor.node.hold_node = players[0].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[2].actor.node.hold_node = players[3].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[3].actor.node.hold_node = players[2].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[4].actor.node.hold_node = players[5].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[5].actor.node.hold_node = players[4].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[6].actor.node.hold_node = players[7].actor.node
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
players[7].actor.node.hold_node = players[6].actor.node
|
||||
except:
|
||||
pass
|
||||
|
||||
#KICK ALL :)))))))))
|
||||
def kickall(arguments, clientid):
|
||||
try:
|
||||
for i in _ba.get_game_roster():
|
||||
if i['client_id'] != clientid:
|
||||
_ba.disconnect_client(i['client_id'])
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def server_chat(arguments, clientid):
|
||||
if arguments == []:
|
||||
ba.screenmessage('Usage: /say <text to send>', transient=True, clients=[clientid])
|
||||
else:
|
||||
message = " ".join(arguments)
|
||||
_ba.chatmessage(message)
|
||||
|
||||
|
||||
def box(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
with ba.Context(player):
|
||||
try:
|
||||
try:
|
||||
if arguments != []:
|
||||
n = int(arguments[0])
|
||||
players[n].actor.node.torso_model = ba.getmodel("tnt");
|
||||
players[n].actor.node.color_mask_texture = ba.gettexture("tnt");
|
||||
players[n].actor.node.color_texture = ba.gettexture("tnt")
|
||||
players[n].actor.node.highlight = (1,1,1)
|
||||
players[n].actor.node.color = (1,1,1);
|
||||
players[n].actor.node.head_model = None;
|
||||
players[n].actor.node.style = "cyborg";
|
||||
except:
|
||||
send(f"Using: /boxall [or] /box [PlayerID]", clientid)
|
||||
except:
|
||||
send(f"Using: /boxall [or] /box [PlayerID]", clientid)
|
||||
|
||||
#BOXALL
|
||||
def boxall(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
with ba.Context(player):
|
||||
try:
|
||||
for i in players:
|
||||
try:
|
||||
i.actor.node.torso_model = ba.getmodel("tnt");
|
||||
i.actor.node.color_mask_texture = ba.gettexture("tnt");
|
||||
i.actor.node.color_texture = ba.gettexture("tnt")
|
||||
i.actor.node.highlight = (1,1,1);
|
||||
i.actor.node.color = (1,1,1);
|
||||
i.actor.node.head_model = None;
|
||||
i.actor.node.style = "cyborg";
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def ac(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if arguments[0] == 'r':
|
||||
m = 1.3 if a[1] is None else float(a[1])
|
||||
s = 1000 if a[2] is None else float(a[2])
|
||||
ba.animate_array(player.globalsnode, 'ambient_color',3, {0: (1*m,0,0), s: (0,1*m,0),s*2:(0,0,1*m),s*3:(1*m,0,0)},True)
|
||||
else:
|
||||
try:
|
||||
if a[1] is not None:
|
||||
player.globalsnode.ambient_color = (float(a[0]),float(a[1]),float(a[2]))
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
send(f"Using: '/ac [Red] [Green] [Blue]' or '/ac r [brightness] [speed]'", clientid)
|
||||
|
||||
|
||||
def tint(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if arguments[0] == 'r':
|
||||
m = 1.3 if a[1] is None else float(a[1])
|
||||
s = 1000 if a[2] is None else float(a[2])
|
||||
ba.animate_array(player.globalsnode, 'tint',3, {0: (1*m,0,0), s: (0,1*m,0),s*2:(0,0,1*m),s*3:(1*m,0,0)},True)
|
||||
else:
|
||||
try:
|
||||
if a[1] is not None:
|
||||
player.globalsnode.tint = (float(a[0]),float(a[1]),float(a[2]))
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
send(f"Using: '/tint [Red] [Green] [Blue]' or '/tint r [brightness] [speed]'", clientid)
|
||||
|
||||
|
||||
def spaz(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if arguments != []:
|
||||
n = int(a[0])
|
||||
appearance_name = a[1].lower() # Convert to lowercase for case-insensitive comparison
|
||||
valid_appearance_names = ['ali', 'wizard', 'cyborg', 'penguin', 'agent', 'pixie', 'bear', 'bunny']
|
||||
# Check if the appearance name is valid
|
||||
if appearance_name in valid_appearance_names:
|
||||
players[n].actor.node.color_texture = ba.gettexture(appearance_name + "Color")
|
||||
players[n].actor.node.color_mask_texture = ba.gettexture(appearance_name + "ColorMask")
|
||||
players[n].actor.node.head_model = ba.getmodel(appearance_name + "Head")
|
||||
players[n].actor.node.torso_model = ba.getmodel(appearance_name + "Torso")
|
||||
players[n].actor.node.pelvis_model = ba.getmodel(appearance_name + "Pelvis")
|
||||
players[n].actor.node.upper_arm_model = ba.getmodel(appearance_name + "UpperArm")
|
||||
players[n].actor.node.forearm_model = ba.getmodel(appearance_name + "ForeArm")
|
||||
players[n].actor.node.hand_model = ba.getmodel(appearance_name + "Hand")
|
||||
players[n].actor.node.upper_leg_model = ba.getmodel(appearance_name + "UpperLeg")
|
||||
players[n].actor.node.lower_leg_model = ba.getmodel(appearance_name + "LowerLeg")
|
||||
players[n].actor.node.toes_model = ba.getmodel(appearance_name + "Toes")
|
||||
players[n].actor.node.style = appearance_name
|
||||
else:
|
||||
# If the appearance name is not valid, inform the user
|
||||
send("Invalid CharacterName.\nPlease choose from: ali, wizard, cyborg, penguin, agent, pixie, bear, bunny", clientid)
|
||||
else:
|
||||
send("Using: /spaz [PLAYER-ID] [CharacterName]", clientid)
|
||||
except Exception as e:
|
||||
print(f"Error in spaz command: {e}")
|
||||
send("An error occurred. Please try again.", clientid)
|
||||
|
||||
|
||||
def spazall(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
for i in players:
|
||||
try:
|
||||
if arguments != []:
|
||||
appearance_name = a[0].lower() # Convert to lowercase for case-insensitive comparison
|
||||
valid_appearance_names = ['ali', 'wizard', 'cyborg', 'penguin', 'agent', 'pixie', 'bear', 'bunny']
|
||||
# Check if the appearance name is valid
|
||||
if appearance_name in valid_appearance_names:
|
||||
i.actor.node.color_texture = ba.gettexture(appearance_name + "Color")
|
||||
i.actor.node.color_mask_texture = ba.gettexture(appearance_name + "ColorMask")
|
||||
i.actor.node.head_model = ba.getmodel(appearance_name + "Head")
|
||||
i.actor.node.torso_model = ba.getmodel(appearance_name + "Torso")
|
||||
i.actor.node.pelvis_model = ba.getmodel(appearance_name + "Pelvis")
|
||||
i.actor.node.upper_arm_model = ba.getmodel(appearance_name + "UpperArm")
|
||||
i.actor.node.forearm_model = ba.getmodel(appearance_name + "ForeArm")
|
||||
i.actor.node.hand_model = ba.getmodel(appearance_name + "Hand")
|
||||
i.actor.node.upper_leg_model = ba.getmodel(appearance_name + "UpperLeg")
|
||||
i.actor.node.lower_leg_model = ba.getmodel(appearance_name + "LowerLeg")
|
||||
i.actor.node.toes_model = ba.getmodel(appearance_name + "Toes")
|
||||
i.actor.node.style = appearance_name
|
||||
else:
|
||||
# If the appearance name is not valid, inform the user
|
||||
send("Invalid CharacterName.\nPlease choose from: ali, wizard, cyborg, penguin, agent, pixie, bear, bunny", clientid)
|
||||
else:
|
||||
send("Using: /spazall [CharacterName]", clientid)
|
||||
except Exception as e:
|
||||
print(f"Error in spaz command: {e}")
|
||||
send("An error occurred. Please try again.", clientid)
|
||||
|
||||
|
||||
def zombie(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
try:
|
||||
if arguments != []:
|
||||
n = int(a[0])
|
||||
players[n].actor.node.color_texture = ba.gettexture("agentColor")
|
||||
players[n].actor.node.color_mask_texture = ba.gettexture("pixieColorMask")
|
||||
players[n].actor.node.head_model = ba.getmodel("zoeHead")
|
||||
players[n].actor.node.torso_model = ba.getmodel("bonesTorso")
|
||||
players[n].actor.node.pelvis_model = ba.getmodel("pixiePelvis")
|
||||
players[n].actor.node.upper_arm_model = ba.getmodel("frostyUpperArm")
|
||||
players[n].actor.node.forearm_model = ba.getmodel("frostyForeArm")
|
||||
players[n].actor.node.hand_model = ba.getmodel("bonesHand")
|
||||
players[n].actor.node.upper_leg_model = ba.getmodel("bonesUpperLeg")
|
||||
players[n].actor.node.lower_leg_model = ba.getmodel("pixieLowerLeg")
|
||||
players[n].actor.node.toes_model = ba.getmodel("bonesToes")
|
||||
players[n].actor.node.color = (0,1,0)
|
||||
players[n].actor.node.highlight = (0.6,0.6,0.6)
|
||||
players[n].actor.node.style = "spaz"
|
||||
except:
|
||||
send(f"Using: /zombieall [or] /zombie [PlayerID]", clientid)
|
||||
except:
|
||||
send(f"Using: /zombieall [or] /zombie [PlayerID]", clientid)
|
||||
|
||||
|
||||
def zombieall(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
for i in players:
|
||||
try:
|
||||
i.actor.node.color_texture = ba.gettexture("agentColor")
|
||||
i.actor.node.color_mask_texture = ba.gettexture("pixieColorMask")
|
||||
i.actor.node.head_model = ba.getmodel("zoeHead")
|
||||
i.actor.node.torso_model = ba.getmodel("bonesTorso")
|
||||
i.actor.node.pelvis_model = ba.getmodel("pixiePelvis")
|
||||
i.actor.node.upper_arm_model = ba.getmodel("frostyUpperArm")
|
||||
i.actor.node.forearm_model = ba.getmodel("frostyForeArm")
|
||||
i.actor.node.hand_model = ba.getmodel("bonesHand")
|
||||
i.actor.node.upper_leg_model = ba.getmodel("bonesUpperLeg")
|
||||
i.actor.node.lower_leg_model = ba.getmodel("pixieLowerLeg")
|
||||
i.actor.node.toes_model = ba.getmodel("bonesToes")
|
||||
i.actor.node.color = (0,1,0)
|
||||
i.actor.node.highlight = (0.6,0.6,0.6)
|
||||
i.actor.node.style = "spaz"
|
||||
except:
|
||||
send(f"Using: /zombieall [or] /zombie [PlayerID]", clientid)
|
||||
|
||||
|
||||
def tex(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if len(a) > 1: n = int(a[0])
|
||||
color = None
|
||||
if (len(a) > 1) and (str(a[1]) == 'kronk'): color = str(a[1])
|
||||
else:color = str(a[1]) + 'Color'
|
||||
try:
|
||||
players[n].actor.node.color_mask_texture= ba.gettexture(str(a[1]) + 'ColorMask')
|
||||
players[n].actor.node.color_texture= ba.gettexture(color)
|
||||
except:
|
||||
send(f"Using: /texall [texture] [or] /tex [PlayerID] [texture]", clientid)
|
||||
except:
|
||||
send(f"Using: /texall [texture] [or] /tex [PlayerID] [texture]", clientid)
|
||||
|
||||
|
||||
def texall(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
color = None
|
||||
if str(a[0]) == 'kronk':
|
||||
color = str(a[0])
|
||||
else:color = str(a[0]) + 'Color'
|
||||
for i in players:
|
||||
try:
|
||||
i.actor.node.color_mask_texture= ba.gettexture(str(a[0]) + 'ColorMask')
|
||||
i.actor.node.color_texture= ba.gettexture(color)
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
send(f"Using: /texall [texture] [or] /tex [PlayerID] [texture]", clientid)
|
||||
|
||||
|
||||
def control(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if True:
|
||||
try:
|
||||
player1 = int(a[0])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
player2 = int(a[1])
|
||||
except:
|
||||
pass
|
||||
node1 = players[player1].actor.node
|
||||
node2 = players[player2].actor.node
|
||||
players[player1].actor.node = node2
|
||||
players[player2].actor.node = node1
|
||||
except:
|
||||
send(f"Using: /exchange [PlayerID1] [PlayerID2]", clientid)
|
||||
|
||||
|
||||
def zm(arguments, clientid):
|
||||
if len(arguments) == 0:
|
||||
_ba.screenmessage("Special Chat Only For Main", color=(1,1,1), transient=True, clients=[clientid])
|
||||
else:
|
||||
k = ' '.join(arguments)
|
||||
with ba.Context(_ba.get_foreground_host_activity()):
|
||||
ZoomText(
|
||||
k,
|
||||
position=(0, 180),
|
||||
maxwidth=800,
|
||||
lifespan=1,
|
||||
color=(0.93*1.25, 0.9*1.25, 1.0*1.25),
|
||||
trailcolor=(0.15, 0.05, 1.0, 0.0),
|
||||
flash=False,
|
||||
jitter=3.0
|
||||
).autoretain()
|
||||
|
||||
|
||||
def icy(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
try:
|
||||
if True:
|
||||
try:
|
||||
player1 = int(a[0])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
player2 = int(a[1])
|
||||
except:
|
||||
pass
|
||||
node1 = players[player2].actor.node
|
||||
players[player1].actor.node = node1
|
||||
except:
|
||||
send(f"Using: /icy [PlayerID1] [PlayerID2]", clientid)
|
||||
|
||||
|
||||
def play_ooh_sound(arguments):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
with ba.Context(player):
|
||||
try:
|
||||
a = arguments
|
||||
if a is not None and len(a) > 0:
|
||||
times = int(a[0])
|
||||
def ooh_recursive(c):
|
||||
ba.playsound(ba.getsound('ooh'), volume=2)
|
||||
c -= 1
|
||||
if c > 0:
|
||||
ba.Timer(int(a[1]) if len(a) > 1 and a[1] is not None else 1000, ba.Call(ooh_recursive, c=c))
|
||||
ooh_recursive(c=times)
|
||||
else:
|
||||
ba.playsound(ba.getsound('ooh'), volume=2)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
|
||||
def play_sound(arguments, clientid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
with ba.Context(player):
|
||||
try:
|
||||
a = arguments # Assign arguments to 'a'
|
||||
if a is not None and len(a) > 0:
|
||||
sound_name = str(a[0])
|
||||
times = int(a[1]) if len(a) > 1 else 1 # Set default times to 1 if not provided
|
||||
volume = float(a[2]) if len(a) > 2 else 2.0 # Set default volume to 2.0 if not provided
|
||||
def play_sound_recursive(c):
|
||||
ba.playsound(ba.getsound(sound_name), volume=volume)
|
||||
c -= 1
|
||||
if c > 0:
|
||||
ba.Timer(int(a[3]) if len(a) > 3 and a[3] is not None else 1000, ba.Call(play_sound_recursive, c=c))
|
||||
play_sound_recursive(c=times)
|
||||
else:
|
||||
send(f"Using: /playsound [music sound] [time] [volume]", clientid)
|
||||
except Exception as e:
|
||||
send(f"Using: /playsound [music sound] [time] [volume]", clientid)
|
||||
|
||||
|
||||
def protect_players(arguments, clientid):
|
||||
if arguments == [] or arguments == ['']:
|
||||
myself = clientid_to_myself(clientid)
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
player = activity.players[myself].actor
|
||||
|
||||
if player.node.invincible != True:
|
||||
player.node.invincible = True
|
||||
else:
|
||||
player.node.invincible = False
|
||||
|
||||
elif arguments[0] == 'all':
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
for i in activity.players:
|
||||
if i.actor.node.invincible != True:
|
||||
i.actor.node.invincible = True
|
||||
else:
|
||||
i.actor.node.invincible = False
|
||||
|
||||
else:
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
req_player = int(arguments[0])
|
||||
player = activity.players[req_player].actor
|
||||
|
||||
if player.node.invincible != True:
|
||||
player.node.invincible = True
|
||||
else:
|
||||
player.node.invincible = False
|
||||
|
||||
|
||||
def acl(arguments, client_id):
|
||||
role = "admin"
|
||||
admin_commands = pdata.roles_cmdlist(role)
|
||||
if not admin_commands:
|
||||
send("Error: Admin role not found.", client_id)
|
||||
return
|
||||
msg = "\ue046______________|ADMIN-CMDS-LISTS|________________\ue046\n"
|
||||
admin_commands_list = admin_commands.split(', ')
|
||||
for i, cmd in enumerate(admin_commands_list, 1):
|
||||
if i % 10 == 0:
|
||||
msg += "\n\ue046 || " + cmd
|
||||
elif i == 1: # Add \ue046 || only to the first command of each line
|
||||
msg += "\ue046 || " + cmd
|
||||
else:
|
||||
msg += ', ' + cmd
|
||||
send(msg, client_id)
|
||||
|
||||
|
||||
def vcl(arguments, client_id):
|
||||
role = "vip"
|
||||
admin_commands = pdata.roles_cmdlist(role)
|
||||
if not admin_commands:
|
||||
send("Error: Vip role not found.", client_id)
|
||||
return
|
||||
msg = "\ue046______________|VIP-CMDS-LISTS|________________\ue046\n"
|
||||
admin_commands_list = admin_commands.split(', ')
|
||||
for i, cmd in enumerate(admin_commands_list, 1):
|
||||
if i % 10 == 0:
|
||||
msg += "\n\ue046 || " + cmd
|
||||
elif i == 1: # Add \ue046 || only to the first command of each line
|
||||
msg += "\ue046 || " + cmd
|
||||
else:
|
||||
msg += ', ' + cmd
|
||||
send(msg, client_id)
|
||||
|
|
@ -1,333 +0,0 @@
|
|||
from .Handlers import send, sendall, sendchat
|
||||
import ba,os
|
||||
import _ba,json
|
||||
from features import discord_bot as dc
|
||||
from datetime import datetime, timedelta
|
||||
import discord, requests, asyncio
|
||||
from playersData import pdata
|
||||
import setting
|
||||
import ba.internal
|
||||
from stats import mystats
|
||||
from ba._general import Call
|
||||
import _thread
|
||||
import setting
|
||||
settings = setting.get_settings_data()
|
||||
ticket = settings["CurrencyType"]["CurrencyName"]
|
||||
tic = settings["CurrencyType"]["Currency"] #dont change this or it will give an error
|
||||
|
||||
Commands = ['me', 'list', 'uniqeid', 'ping', 'vp', 'uid', 'pbid', 'comp', 'complaintstep']
|
||||
CommandAliases = ['stats', 'score', 'rank',
|
||||
'myself', 'l', 'id', 'link', 'pb-id', 'dclink', 'pme', 'pb', 'accountid', 'coinhelp', 'voting-playlist', 'complaint', 'cs']
|
||||
|
||||
|
||||
def ExcelCommand(command, arguments, clientid, accountid, ARGUMENTS):
|
||||
"""
|
||||
Checks The Command And Run Function
|
||||
|
||||
Parameters:
|
||||
command : str
|
||||
arguments : str
|
||||
ARGUMENTS : str
|
||||
clientid : int
|
||||
accountid : int
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
if command in ['me', 'rank', 'stats', 'score', 'myself']:
|
||||
fetch_send_stats(accountid, clientid)
|
||||
|
||||
elif command in ['list', 'l']:
|
||||
list(clientid)
|
||||
|
||||
elif command in ['uniqeid', 'uid', 'pb-id', 'pbid', 'accountid']:
|
||||
accountid_request(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['id', 'pb']:
|
||||
accountid_clientid(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['ping']:
|
||||
get_ping(arguments, clientid)
|
||||
|
||||
elif command in ['voting-playlist', 'vp']:
|
||||
voting_playlist(arguments, clientid)
|
||||
|
||||
elif command in ['cs', 'complaintstep']:
|
||||
complaint_step(arguments, clientid)
|
||||
|
||||
elif command == 'pme':
|
||||
stats_to_clientid(arguments, clientid, accountid)
|
||||
|
||||
elif command == 'coinhelp':
|
||||
coinhelp(arguments, clientid)
|
||||
|
||||
elif command == 'link':
|
||||
linked_user(arguments, clientid, accountid)
|
||||
|
||||
elif command in ['comp', 'complaint']:
|
||||
get_complaint(arguments, clientid, accountid, ARGUMENTS)
|
||||
|
||||
elif command == 'dclink':
|
||||
linkingdc(arguments, clientid)
|
||||
|
||||
|
||||
def get_ping(arguments, clientid):
|
||||
if arguments == [] or arguments == ['']:
|
||||
send(f"Your ping {_ba.get_client_ping(clientid)}ms ", clientid)
|
||||
elif arguments[0] == 'all':
|
||||
pingall(clientid)
|
||||
else:
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
|
||||
for index, player in enumerate(session.sessionplayers):
|
||||
name = player.getname(full=True, icon=False),
|
||||
if player.inputdevice.client_id == int(arguments[0]):
|
||||
ping = _ba.get_client_ping(int(arguments[0]))
|
||||
send(f" {name}'s ping {ping}ms", clientid)
|
||||
except:
|
||||
return
|
||||
|
||||
#added tickets in stats :))
|
||||
def getcoins(account_id: str):
|
||||
BANK_PATH = _ba.env().get("python_directory_user", "") + "/bank.json"
|
||||
with open(BANK_PATH, 'r') as f:
|
||||
coins = json.loads(f.read())
|
||||
if account_id in coins:
|
||||
return coins[account_id]
|
||||
|
||||
def stats(ac_id, clientid):
|
||||
stats = mystats.get_stats_by_id(ac_id)
|
||||
if stats:
|
||||
tickets = getcoins(ac_id)
|
||||
reply = (
|
||||
f"\ue048| Name: {stats['name']}\n"
|
||||
f"\ue048| PB-ID: {stats['aid']}\n"
|
||||
f"\ue048| {ticket.capitalize()}: {tickets}{tic}\n"
|
||||
f"\ue048| Rank: {stats['rank']}\n"
|
||||
f"\ue048| Score: {stats['scores']}\n"
|
||||
f"\ue048| Games: {stats['games']}\n"
|
||||
f"\ue048| Kills: {stats['kills']}\n"
|
||||
f"\ue048| Deaths: {stats['deaths']}\n"
|
||||
f"\ue048| Avg.: {stats['avg_score']}\n"
|
||||
)
|
||||
else:
|
||||
reply = "Not played any match yet."
|
||||
|
||||
_ba.pushcall(Call(send, reply, clientid), from_other_thread=True)
|
||||
|
||||
|
||||
def fetch_send_stats(ac_id, clientid):
|
||||
_thread.start_new_thread(stats, (ac_id, clientid,))
|
||||
|
||||
|
||||
def stats_to_clientid(arguments, clid, acid):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
if arguments == [] or arguments == ['']:
|
||||
with ba.Context(player):
|
||||
send(f"Using: /pme [Clientid of player]", clid)
|
||||
else:
|
||||
cl_id = int(arguments[0])
|
||||
for pla in ba.internal.get_foreground_host_session().sessionplayers:
|
||||
if pla.inputdevice.client_id == cl_id:
|
||||
fname = pla.getname(full=True, icon=True)
|
||||
for roe in ba.internal.get_game_roster():
|
||||
if roe["client_id"] == cl_id:
|
||||
pbid = roe["account_id"]
|
||||
stats = mystats.get_stats_by_id(pbid)
|
||||
if stats:
|
||||
tickets = getcoins(pbid)
|
||||
reply = (
|
||||
f"\ue048| Name: {fname}\n"
|
||||
f"\ue048| PB-ID: {stats['aid']}\n"
|
||||
f"\ue048| {ticket.capitalize()}: {tickets}{tic}\n"
|
||||
f"\ue048| Rank: {stats['rank']}\n"
|
||||
f"\ue048| Score: {stats['scores']}\n"
|
||||
f"\ue048| Games: {stats['games']}\n"
|
||||
f"\ue048| Kills: {stats['kills']}\n"
|
||||
f"\ue048| Deaths: {stats['deaths']}\n"
|
||||
f"\ue048| Avg.: {stats['avg_score']}\n"
|
||||
)
|
||||
send(reply, clid)
|
||||
else:
|
||||
areply = "Not played any match yet."
|
||||
send(areply, clid)
|
||||
|
||||
|
||||
def pingall(clientid):
|
||||
"""Returns The List Of Players Clientid and index"""
|
||||
|
||||
p = u'{0:^16}{1:^34}ms'
|
||||
seprator = '\n______________________________\n'
|
||||
|
||||
list = p.format('Name', 'Ping (ms)')+seprator
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
|
||||
for index, player in enumerate(session.sessionplayers):
|
||||
list += p.format(player.getname(icon=True),
|
||||
_ba.get_client_ping(int(player.inputdevice.client_id)))+"\n"
|
||||
|
||||
send(list, clientid)
|
||||
|
||||
def list(clientid):
|
||||
"""Returns The List Of Players Clientid and index"""
|
||||
|
||||
p = u'{0:^16}{1:^15}{2:^10}'
|
||||
seprator = '\n______________________________\n'
|
||||
|
||||
list = p.format('Name', 'Client ID', 'Player ID')+seprator
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
|
||||
for index, player in enumerate(session.sessionplayers):
|
||||
list += p.format(player.getname(icon=False),
|
||||
player.inputdevice.client_id, index)+"\n"
|
||||
|
||||
send(list, clientid)
|
||||
|
||||
|
||||
def voting_playlist(arguments, clientid):
|
||||
"""Voting playlist list"""
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
send(f"\ue048| VOTING GAMES LISTS ", clientid)
|
||||
send(f"\ue048| PLAYLIST EPIC SMASH TYPE PES ", clientid)
|
||||
send(f"\ue048| PLAYLIST EPIC TEAMS TYPE PET ", clientid)
|
||||
send(f"\ue048| PLAYLIST DEFAULTS GAMES TYPE PDG ", clientid)
|
||||
send(f"\ue048| PLAYLIST DEATHMATCH AND ELIMINATION ONLY TYPE PDEG ", clientid)
|
||||
|
||||
|
||||
def complaint_step(arguments, clientid):
|
||||
"""Voting playlist list"""
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
send(f"\ue048| COMPLAINTS STEPS: ", clientid)
|
||||
send(f"\ue048| Type /complaint (clientid of offender) (complaint) or", clientid)
|
||||
send(f"\ue048| /comp (clientid of offender) (complaint)", clientid)
|
||||
send(f"\ue048| For Example: /comp 113 betraying etc!!. ", clientid)
|
||||
send(f"\ue048| Your Complaint will get sent to discord server immediately!!", clientid)
|
||||
send(f"Note - Don't spam with this command or u will get a ban permanently..!!!!!", clientid)
|
||||
|
||||
|
||||
def coinhelp(arguments, clientid):
|
||||
send(f"\ue048| COINSYSTEM CMDz", clientid)
|
||||
send(f"\ue048| Type /shop effects to know which effects are available to buy", clientid)
|
||||
send(f"\ue048| Type /jct to check next join claim time", clientid)
|
||||
send(f"\ue048| Type /rpe to remove paid effect..", clientid)
|
||||
send(f"\ue048| Type /buy (effect) to buy effects ", clientid)
|
||||
send(f"\ue048| Type /donate (amount of {ticket}) (clientid of player) to donate your {ticket} to a player", clientid)
|
||||
send(f"\ue048| Type /stc (amount) to convert score to cash (not available)", clientid)
|
||||
send(f"\ue048| Type /cts (amount) to convert cash to score (not available)", clientid)
|
||||
|
||||
|
||||
def linkingdc(arguments, clientid):
|
||||
"""Linking pbid to discord-id Step"""
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
send(f"\ue048| LINKING PBIDs TO DISCORD IDs STEPS:", clientid)
|
||||
send(f"\ue048| Type /link (Discord user ID or Username) to link your PBID.", clientid)
|
||||
send(f"\ue048| If a user successfully links their PBID to their Discord-ID", clientid)
|
||||
send(f"\ue048| U will receive reward of 3000{tic}.", clientid)
|
||||
send(f"\ue048| This offer valid only for 3 month so hurry up and link your PBID", clientid)
|
||||
send(f"\ue048| Note: The linking process is valid only for 5 min.", clientid)
|
||||
|
||||
|
||||
def accountid_request(arguments, clientid, accountid):
|
||||
"""Returns The Account Id Of Players"""
|
||||
|
||||
if arguments == [] or arguments == ['']:
|
||||
send(f"Your account id is {accountid} ", clientid)
|
||||
|
||||
else:
|
||||
try:
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
player = session.sessionplayers[int(arguments[0])]
|
||||
|
||||
name = player.getname(full=True, icon=True)
|
||||
accountid = player.get_v1_account_id()
|
||||
|
||||
send(f" {name}'s account id is '{accountid}' ", clientid)
|
||||
except:
|
||||
return
|
||||
|
||||
|
||||
def accountid_clientid(arguments, clientid, accountid):
|
||||
"""accountid request by clientid """
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
session = ba.internal.get_foreground_host_session()
|
||||
player = _ba.get_foreground_host_activity()
|
||||
a = arguments
|
||||
with ba.Context(player):
|
||||
if True:
|
||||
clld = int(a[0])
|
||||
for i in session.sessionplayers:
|
||||
if i.inputdevice.client_id == clld:
|
||||
names = i.getname(full=True, icon=True)
|
||||
accountid = i.get_v1_account_id()
|
||||
send(f" {names}'s account id is '{accountid}' ", clientid)
|
||||
|
||||
|
||||
def linked_user(arguments, clid, acid):
|
||||
player = _ba.get_foreground_host_activity()
|
||||
if not arguments or arguments == ['']:
|
||||
with ba.Context(player):
|
||||
send(f"Using: /link [DC user-ID or Dc User-Name]", clid)
|
||||
else:
|
||||
userid = arguments[0]
|
||||
asyncio.ensure_future(dc.link_pbid_to_discord(user_id_or_name=userid,pbid=acid,clientid=clid))
|
||||
|
||||
|
||||
def get_complaint(arguments, clientid, acid, ARGUMENTS):
|
||||
players = _ba.get_foreground_host_activity().players
|
||||
player = _ba.get_foreground_host_activity()
|
||||
server = _ba.app.server._config.party_name
|
||||
customers = pdata.get_custom()['complainter']
|
||||
a = arguments
|
||||
b = ARGUMENTS
|
||||
|
||||
if not arguments or arguments == ['']:
|
||||
with ba.Context(player):
|
||||
send(f"Using: /comp [Clientid of offender] [complaint reason]", clientid)
|
||||
else:
|
||||
cl_id = int(arguments[0])
|
||||
complaint = " ".join(b[1:])
|
||||
|
||||
# Check if the user is trying to complain against themselves
|
||||
if cl_id == clientid:
|
||||
send("You can't file a complaint against yourself.", clientid)
|
||||
return
|
||||
|
||||
for pla in ba.internal.get_foreground_host_session().sessionplayers:
|
||||
if pla.inputdevice.client_id == clientid:
|
||||
name = pla.getname(full=True, icon=True)
|
||||
if pla.inputdevice.client_id == cl_id:
|
||||
fname = pla.getname(full=True, icon=True)
|
||||
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros['account_id'] == acid:
|
||||
myself = ros["display_string"]
|
||||
|
||||
for roe in ba.internal.get_game_roster():
|
||||
if roe["client_id"] == cl_id:
|
||||
offendr = roe["display_string"]
|
||||
pbid = roe["account_id"]
|
||||
otheraccounts = pdata.get_detailed_pinfo(pbid)
|
||||
|
||||
now = datetime.now().strftime('%d-%m-%Y %I:%M:%S %p')
|
||||
|
||||
if acid not in customers:
|
||||
if not complaint:
|
||||
send("Please provide a complaint reason.", clientid)
|
||||
return
|
||||
|
||||
settime = settings["complaintTimeoutInHours"]
|
||||
expiry = datetime.now() + timedelta(hours=settime)
|
||||
customers[acid] = {'expiry': expiry.strftime('%d-%m-%Y %I:%M:%S %p')}
|
||||
|
||||
# Call the send_complaint_to_channel function
|
||||
asyncio.ensure_future(dc.send_complaint_to_channel(server_name=server, time=now, myself=myself, ign=name, useracid=acid, fign=fname, acid=pbid, linkedaccount=otheraccounts, offender=offendr, complaint=complaint))
|
||||
|
||||
send("A complaint has been sent on the Discord server. Please wait for Staff to take action...!!", clientid)
|
||||
else:
|
||||
till = customers[acid]['expiry']
|
||||
send(f"You can use the complaint command again at {till}", clientid)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue