mirror of
https://github.com/hypervortex/VH-Bombsquad-Modded-Server-Files
synced 2026-08-15 13:04:50 +00:00
Added new files
This commit is contained in:
parent
867634cc5c
commit
3a407868d4
1775 changed files with 550222 additions and 0 deletions
1
dist/ba_root/mods/playersData/DiscordCmdLogs.json
vendored
Normal file
1
dist/ba_root/mods/playersData/DiscordCmdLogs.json
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
hi
|
||||
7
dist/ba_root/mods/playersData/__init__.py
vendored
Normal file
7
dist/ba_root/mods/playersData/__init__.py
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
"""Common bits of functionality shared between all efro projects.
|
||||
|
||||
Things in here should be hardened, highly type-safe, and well-covered by unit
|
||||
tests since they are widely used in live client and server code.
|
||||
|
||||
license : MIT, see LICENSE for more details.
|
||||
"""
|
||||
BIN
dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc
vendored
Normal file
BIN
dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc
vendored
Normal file
Binary file not shown.
BIN
dist/ba_root/mods/playersData/__pycache__/members.cpython-310.opt-1.pyc
vendored
Normal file
BIN
dist/ba_root/mods/playersData/__pycache__/members.cpython-310.opt-1.pyc
vendored
Normal file
Binary file not shown.
BIN
dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc
vendored
Normal file
BIN
dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc
vendored
Normal file
Binary file not shown.
55
dist/ba_root/mods/playersData/blacklist.json
vendored
Normal file
55
dist/ba_root/mods/playersData/blacklist.json
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"ban": {
|
||||
"ids": {
|
||||
"pb-234": {
|
||||
"till": "2023-06-07 21:59:20",
|
||||
"reason": "auto ban for spam"
|
||||
},
|
||||
"pb-IF4RUHUCVA==": {
|
||||
"till": "2023-11-25 10:27:05",
|
||||
"reason": "by chat command"
|
||||
},
|
||||
"pb-IF4oU24oAw==": {
|
||||
"till": "2023-11-27 10:44:59",
|
||||
"reason": "by chat command"
|
||||
}
|
||||
},
|
||||
"ips": {
|
||||
"19.168.0.0.1": {
|
||||
"till": "2023-06-07 21:59:20",
|
||||
"reason": "auto ban for spam"
|
||||
}
|
||||
},
|
||||
"deviceids": {
|
||||
"sdfdsfwr3": {
|
||||
"till": "2023-06-07 21:59:20",
|
||||
"reason": "auto ban for spam"
|
||||
},
|
||||
"45726190c674ff903b471ac1a05dd0c28666ba2b": {
|
||||
"till": "2023-11-25 10:27:05",
|
||||
"reason": "linked with account pb-IF4RUHUCVA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"muted-ids": {
|
||||
"pb-IF5QUk4lNg==": {
|
||||
"till": "2024-05-09 20:07:28",
|
||||
"reason": "vortex_order"
|
||||
}
|
||||
},
|
||||
"complainter": {
|
||||
"45726190c674ff903b471ac1a05dd0c28666ba2b": {
|
||||
"expriy": "2023-11-25 10:27:05"
|
||||
}
|
||||
},
|
||||
"kick-vote-disabled": {
|
||||
"pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE": {
|
||||
"till": "2023-06-12 19:37:48",
|
||||
"reason": "manually from website"
|
||||
},
|
||||
"pb-IF5QUk4lNg==": {
|
||||
"till": "2418-05-04 20:08:48",
|
||||
"reason": "vortex_order"
|
||||
}
|
||||
}
|
||||
}
|
||||
15
dist/ba_root/mods/playersData/custom.json
vendored
Normal file
15
dist/ba_root/mods/playersData/custom.json
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"customtag": {
|
||||
"pb": "jh"
|
||||
},
|
||||
"customeffects": {},
|
||||
"paideffects": {},
|
||||
"paidtags": {},
|
||||
"coin_claim": {
|
||||
"pb-IF4BUlQBJw==": {
|
||||
"name": "\ue063V0RT3X",
|
||||
"expiry": "21-02-2024 12:54:26"
|
||||
}
|
||||
},
|
||||
"complainter": {}
|
||||
}
|
||||
15
dist/ba_root/mods/playersData/custom.json.backup
vendored
Normal file
15
dist/ba_root/mods/playersData/custom.json.backup
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"customtag": {
|
||||
"pb": "jh"
|
||||
},
|
||||
"customeffects": {},
|
||||
"paideffects": {},
|
||||
"paidtags": {},
|
||||
"coin_claim": {
|
||||
"pb-IF4BUlQBJw==": {
|
||||
"name": "\ue063V0RT3X",
|
||||
"expiry": "21-02-2024 12:54:26"
|
||||
}
|
||||
},
|
||||
"complainter": {}
|
||||
}
|
||||
992
dist/ba_root/mods/playersData/pdata.py
vendored
Normal file
992
dist/ba_root/mods/playersData/pdata.py
vendored
Normal file
|
|
@ -0,0 +1,992 @@
|
|||
"""Module to manage players data."""
|
||||
|
||||
# ba_meta require api 6
|
||||
# (see https://ballistica.net/wiki/meta-tag-system)
|
||||
|
||||
from __future__ import annotations
|
||||
import shutil
|
||||
import copy
|
||||
from typing import TYPE_CHECKING
|
||||
from chatHandle.ChatCommands.commands.Handlers import send, sendchat
|
||||
import time
|
||||
import os
|
||||
import set
|
||||
from tools import logger
|
||||
import _thread
|
||||
|
||||
from serverData import serverdata
|
||||
from tools.file_handle import OpenJson
|
||||
# pylint: disable=import-error
|
||||
import _ba
|
||||
import ba.internal
|
||||
import json
|
||||
from tools import mongo
|
||||
|
||||
from tools.ServerUpdate import checkSpammer
|
||||
import setting
|
||||
from datetime import datetime, timedelta
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
PLAYERS_DATA_PATH = os.path.join(
|
||||
_ba.env()["python_directory_user"], "playersData" + os.sep
|
||||
)
|
||||
|
||||
|
||||
class CacheData: # pylint: disable=too-few-public-methods
|
||||
"""Stores the cache data."""
|
||||
|
||||
roles: dict = {}
|
||||
data: dict = {}
|
||||
custom: dict = {}
|
||||
profiles: dict = {}
|
||||
whitelist: list[str] = []
|
||||
blacklist: dict = {}
|
||||
|
||||
|
||||
def get_info(account_id: str) -> dict | None:
|
||||
"""Returns the information about player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account_id of the client
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict | None
|
||||
information of client
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
return profiles[account_id]
|
||||
return None
|
||||
|
||||
|
||||
def get_cmdlist(role: str) -> dict | None:
|
||||
"""Returns the information about player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role of the client
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict | None
|
||||
information of client
|
||||
"""
|
||||
roles = get_roles()
|
||||
if role in roles:
|
||||
return roles[role]
|
||||
return None
|
||||
|
||||
|
||||
def get_profiles() -> dict:
|
||||
"""Returns the profiles of all players.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
profiles of the players
|
||||
"""
|
||||
if CacheData.profiles == {}:
|
||||
try:
|
||||
if os.stat(PLAYERS_DATA_PATH+"profiles.json").st_size > 1000000:
|
||||
newpath = f'{PLAYERS_DATA_PATH}profiles-{str(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}.json'
|
||||
shutil.copyfile(PLAYERS_DATA_PATH + "profiles.json", newpath)
|
||||
profiles = {"pb-sdf": {}}
|
||||
print("resetting profiles")
|
||||
else:
|
||||
f = open(PLAYERS_DATA_PATH + "profiles.json", "r")
|
||||
profiles = json.load(f)
|
||||
f.close()
|
||||
print("loading old proiles.json")
|
||||
CacheData.profiles = profiles
|
||||
|
||||
except Exception as e:
|
||||
f = open(PLAYERS_DATA_PATH + "profiles.json.backup", "r")
|
||||
profiles = json.load(f)
|
||||
print(e)
|
||||
print("exception happened , falling back to profiles.json.backup")
|
||||
CacheData.profiles = profiles
|
||||
f.close()
|
||||
return profiles
|
||||
else:
|
||||
return CacheData.profiles
|
||||
|
||||
|
||||
def get_profiles_archive_index():
|
||||
return [x for x in os.listdir(PLAYERS_DATA_PATH) if x.startswith("profiles")]
|
||||
|
||||
|
||||
def get_old_profiles(filename):
|
||||
try:
|
||||
f = open(PLAYERS_DATA_PATH + filename, "r")
|
||||
profiles = json.load(f)
|
||||
return profiles
|
||||
except:
|
||||
return {}
|
||||
|
||||
|
||||
def get_blacklist() -> dict:
|
||||
if CacheData.blacklist == {}:
|
||||
try:
|
||||
f = open(PLAYERS_DATA_PATH + "blacklist.json", "r")
|
||||
CacheData.blacklist = json.load(f)
|
||||
except:
|
||||
print('error opening blacklist json')
|
||||
return {
|
||||
"ban": {
|
||||
"ids": {},
|
||||
"ips": {},
|
||||
"deviceids": {}
|
||||
},
|
||||
"muted-ids": {},
|
||||
"kick-vote-disabled": {}
|
||||
}
|
||||
|
||||
return CacheData.blacklist
|
||||
|
||||
|
||||
def update_blacklist():
|
||||
with open(PLAYERS_DATA_PATH + "blacklist.json", "w") as f:
|
||||
json.dump(CacheData.blacklist, f, indent=4)
|
||||
|
||||
def updates_roles():
|
||||
roles = copy.deepcopy(CacheData.roles)
|
||||
with open(PLAYERS_DATA_PATH + "roles.json", "w") as f:
|
||||
json.dump(roles, f, indent=4)
|
||||
|
||||
def update_custom():
|
||||
custom = copy.deepcopy(CacheData.custom)
|
||||
with open(PLAYERS_DATA_PATH + "custom.json", "w") as f:
|
||||
json.dump(custom, f, indent=4)
|
||||
|
||||
def get_database():
|
||||
bannedplayers = mongo.Banlist.find_one()
|
||||
return bannedplayers
|
||||
|
||||
def update_database():
|
||||
mongo.Banlist.delete_many({})
|
||||
x = mongo.Banlist.insert_one(bandata)
|
||||
print(x.inserted_id)
|
||||
|
||||
def update_DiscordCmdLogs():
|
||||
with open(PLAYERS_DATA_PATH + "DiscordCmdLogs", "w") as f:
|
||||
json.dump(CacheData.blacklist, f, indent=4)
|
||||
|
||||
|
||||
def commit_profiles(data={}) -> None:
|
||||
"""Commits the given profiles in the database.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
profiles of all players
|
||||
"""
|
||||
# with OpenJson(PLAYERS_DATA_PATH + "profiles.json") as profiles_file:
|
||||
# profiles_file.dump(CacheData.profiles, indent=4)
|
||||
|
||||
|
||||
def get_detailed_info(pbid):
|
||||
main_account = get_info(pbid)
|
||||
if main_account == None:
|
||||
return "No info"
|
||||
linked_accounts = ' '.join(main_account["display_string"])
|
||||
ip = main_account["lastIP"]
|
||||
deviceid = main_account["deviceUUID"]
|
||||
otheraccounts = ""
|
||||
dob = main_account["accountAge"]
|
||||
profiles = get_profiles()
|
||||
for key, value in profiles.items():
|
||||
if ("lastIP" in value and value["lastIP"] == ip) or ("deviceUUID" in value and value["deviceUUID"] == deviceid):
|
||||
otheraccounts += ' '.join(value["display_string"])
|
||||
return f"Accounts:{linked_accounts} \n other accounts {otheraccounts} \n created on {dob}"
|
||||
|
||||
|
||||
def get_detailed_pinfo(pbid):
|
||||
main_account = get_info(pbid)
|
||||
if main_account == None:
|
||||
return " "
|
||||
linked_accounts = ' '.join(main_account["display_string"])
|
||||
ip = main_account["lastIP"]
|
||||
deviceid = main_account["deviceUUID"]
|
||||
otheraccounts = ""
|
||||
dob = main_account["accountAge"]
|
||||
profiles = get_profiles()
|
||||
for key, value in profiles.items():
|
||||
if ("lastIP" in value and value["lastIP"] == ip) or ("deviceUUID" in value and value["deviceUUID"] == deviceid):
|
||||
otheraccounts += ' '.join(value["display_string"])+", "
|
||||
return f"{otheraccounts}"
|
||||
|
||||
|
||||
def roles_cmdlist(role):
|
||||
main_role = get_cmdlist(role)
|
||||
if main_role == None:
|
||||
return " "
|
||||
rol = ', '.join(main_role["commands"])
|
||||
othercmd = ""
|
||||
roles = get_roles()
|
||||
for key, value in roles.items():
|
||||
othercmd += ' '.join(value["commands"])+", "
|
||||
return f"{rol}"
|
||||
|
||||
def get_DiscordCmds():
|
||||
log_file_path = "DiscordCmdLogs.json"
|
||||
try:
|
||||
with open(log_file_path, 'r') as file:
|
||||
log_data = json.load(file)
|
||||
return log_data
|
||||
except FileNotFoundError:
|
||||
print("Error: Discord command logs file not found.")
|
||||
return []
|
||||
|
||||
|
||||
|
||||
def add_profile(
|
||||
account_id: str,
|
||||
display_string: str,
|
||||
current_name: str,
|
||||
account_age: int,
|
||||
) -> None:
|
||||
"""Adds the profile in database.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
display_string : str
|
||||
display string of the client
|
||||
current_name : str
|
||||
name of the client
|
||||
account_age : int
|
||||
account_age of the account
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
profiles[account_id] = {
|
||||
"display_string": display_string,
|
||||
"profiles": [],
|
||||
"name": current_name,
|
||||
"isBan": False,
|
||||
"isMuted": False,
|
||||
"accountAge": account_age,
|
||||
"registerOn": time.time(),
|
||||
"spamCount": 0,
|
||||
"lastSpam": time.time(),
|
||||
"totaltimeplayer": 0,
|
||||
}
|
||||
CacheData.profiles = profiles
|
||||
|
||||
serverdata.clients[account_id] = profiles[account_id]
|
||||
serverdata.clients[account_id]["warnCount"] = 0
|
||||
serverdata.clients[account_id]["lastWarned"] = time.time()
|
||||
serverdata.clients[account_id]["verified"] = False
|
||||
serverdata.clients[account_id]["rejoincount"] = 1
|
||||
serverdata.clients[account_id]["lastJoin"] = time.time()
|
||||
cid = 113
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros['account_id'] == account_id:
|
||||
cid = ros['client_id']
|
||||
ip = _ba.get_client_ip(cid)
|
||||
serverdata.clients[account_id]["lastIP"] = ip
|
||||
serverdata.recents.append(
|
||||
{"client_id": cid, "deviceId": display_string, "pbid": account_id})
|
||||
serverdata.recents = serverdata.recents[-20:]
|
||||
device_id = _ba.get_client_public_device_uuid(cid)
|
||||
if (device_id == None):
|
||||
device_id = _ba.get_client_device_uuid(cid)
|
||||
checkSpammer({'id': account_id, 'display': display_string,
|
||||
'ip': ip, 'device': device_id})
|
||||
if device_id in get_blacklist()["ban"]["deviceids"] or account_id in get_blacklist()["ban"]["ids"]:
|
||||
ba.internal.disconnect_client(cid)
|
||||
serverdata.clients[account_id]["deviceUUID"] = device_id
|
||||
if device_id in get_database()["ban"]["deviceids"]:
|
||||
serverdata.clients[account_id]["isBan"]=True
|
||||
ba.internal.disconnect_client(cid)
|
||||
serverdata.clients[account_id]["deviceUUID"] = device_id
|
||||
if set.coin:
|
||||
checkExpiredItems()
|
||||
|
||||
|
||||
def update_display_string(account_id: str, display_string: str) -> None:
|
||||
"""Updates the display string of the account.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
display_string : str
|
||||
new display string to be updated
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["display_string"] = display_string
|
||||
CacheData.profiles = profiles
|
||||
commit_profiles()
|
||||
|
||||
|
||||
def update_profile(
|
||||
account_id: str,
|
||||
display_string: str = None,
|
||||
allprofiles: list[str] = None,
|
||||
name: str = None,
|
||||
) -> None:
|
||||
"""Updates the profile of client.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
display_string : str, optional
|
||||
display string of the account, by default None
|
||||
allprofiles : list[str], optional
|
||||
all profiles of the client, by default None
|
||||
name : str, optional
|
||||
name to be updated, by default None
|
||||
"""
|
||||
|
||||
profiles = get_profiles()
|
||||
|
||||
if profiles is None:
|
||||
return
|
||||
|
||||
if account_id in profiles and display_string is not None:
|
||||
if display_string not in profiles[account_id]["display_string"]:
|
||||
profiles[account_id]["display_string"].append(display_string)
|
||||
|
||||
if allprofiles is not None:
|
||||
for profile in allprofiles:
|
||||
if profile not in profiles[account_id]["profiles"]:
|
||||
profiles[account_id]["profiles"].append(profile)
|
||||
|
||||
if name is not None:
|
||||
profiles[account_id]["name"] = name
|
||||
CacheData.profiles = profiles
|
||||
commit_profiles()
|
||||
|
||||
|
||||
def ban_player_mongo(account_id: str) -> None:
|
||||
"""Bans the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the player to be banned
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["isBan"] = True
|
||||
CacheData.profiles=profiles
|
||||
# _thread.start_new_thread(commit_profiles, (profiles,))
|
||||
cid = -1
|
||||
for ros in ba.internal.get_game_roster():
|
||||
if ros['account_id'] == account_id:
|
||||
cid = ros['client_id']
|
||||
ip = _ba.get_client_ip(cid)
|
||||
|
||||
device_id = _ba.get_client_public_device_uuid(cid)
|
||||
if(device_id==None):
|
||||
device_id = _ba.get_client_device_uuid(cid)
|
||||
|
||||
global bandata
|
||||
bandata = mongo.Banlist.find_one()
|
||||
bandata["ban"]["ips"].append(ip)
|
||||
bandata["ban"]["ids"].append(account_id)
|
||||
bandata["ban"]["deviceids"].append(device_id)
|
||||
_thread.start_new_thread(update_database,())
|
||||
|
||||
|
||||
def mongokick(account_id: str) -> None:
|
||||
"""kicks the player if mongoban is called.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the player to be kicked
|
||||
"""
|
||||
for account in serverdata.recents:
|
||||
if account['pbid'] == account_id:
|
||||
cl_id = account['client_id']
|
||||
name = account['deviceId']
|
||||
sendchat(f"{name} have been banned from server by discord..")
|
||||
logger.log(f"Successfully banned {name} from server by discord")
|
||||
ba.internal.disconnect_client(cl_id)
|
||||
|
||||
|
||||
def dckick(account_id: str) -> None:
|
||||
"""kicks the player if dckick is called.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the player to be kicked
|
||||
"""
|
||||
for account in serverdata.recents:
|
||||
if account['pbid'] == account_id:
|
||||
cl_id = account['client_id']
|
||||
name = account['deviceId']
|
||||
sendchat(f"{name} have been kicked from server by discord.. Goodbye 👋")
|
||||
logger.log(f"kicked {name} from discord..!")
|
||||
ba.internal.disconnect_client(cl_id)
|
||||
|
||||
|
||||
def ban_player(account_id: str, duration_in_days: float, reason: str) -> None:
|
||||
"""Bans the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the player to be banned
|
||||
"""
|
||||
current_profiles = get_profiles()
|
||||
ip = ""
|
||||
device_id = ""
|
||||
if account_id in current_profiles:
|
||||
ip = current_profiles[account_id]["lastIP"]
|
||||
device_id = current_profiles[account_id]["deviceUUID"]
|
||||
|
||||
ban_time = datetime.now() + timedelta(days=duration_in_days)
|
||||
|
||||
CacheData.blacklist["ban"]["ips"][ip] = {"till": ban_time.strftime(
|
||||
"%Y-%m-%d %H:%M:%S"), "reason": f'linked with account {account_id}'}
|
||||
CacheData.blacklist["ban"]["ids"][account_id] = {
|
||||
"till": ban_time.strftime("%Y-%m-%d %H:%M:%S"), "reason": reason}
|
||||
CacheData.blacklist["ban"]["deviceids"][device_id] = {"till": ban_time.strftime(
|
||||
"%Y-%m-%d %H:%M:%S"), "reason": f'linked with account {account_id}'}
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def unban_player(account_id):
|
||||
current_profiles = get_profiles()
|
||||
ip = ""
|
||||
device_id = ""
|
||||
if account_id in current_profiles:
|
||||
ip = current_profiles[account_id]["lastIP"]
|
||||
device_id = current_profiles[account_id]["deviceUUID"]
|
||||
|
||||
CacheData.blacklist["ban"]["ips"].pop(ip, None)
|
||||
CacheData.blacklist["ban"]["deviceids"].pop(device_id, None)
|
||||
CacheData.blacklist["ban"]["ids"].pop(account_id, None)
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def disable_kick_vote(account_id, duration, reason):
|
||||
ban_time = datetime.now() + timedelta(days=duration)
|
||||
CacheData.blacklist["kick-vote-disabled"][account_id] = {"till": ban_time.strftime(
|
||||
"%Y-%m-%d %H:%M:%S"), "reason": reason}
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def enable_kick_vote(account_id):
|
||||
CacheData.blacklist["kick-vote-disabled"].pop(account_id, None)
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def mute_mongo(account_id: str) -> None:
|
||||
"""Mutes the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
acccount id of the player to be muted
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["isMuted"] = True
|
||||
CacheData.profiles=profiles
|
||||
_thread.start_new_thread(commit_profiles, (profiles,))
|
||||
|
||||
|
||||
def checkExpiredItems():
|
||||
customers = get_custom()['paideffects']
|
||||
expired_keys = []
|
||||
|
||||
for x in customers:
|
||||
y = customers[x]['expiry']
|
||||
now = datetime.now()
|
||||
expiry = datetime.strptime(y, '%d-%m-%Y %H:%M:%S')
|
||||
if expiry < now:
|
||||
print("Expired effect found")
|
||||
expired_keys.append(x)
|
||||
|
||||
# Remove expired keys
|
||||
for key in expired_keys:
|
||||
customers.pop(key)
|
||||
|
||||
|
||||
def checkExpiredcomp():
|
||||
customers = get_custom()['complainter']
|
||||
expired_keys = []
|
||||
|
||||
for x in customers:
|
||||
y = customers[x]['expiry']
|
||||
now = datetime.now()
|
||||
expiry = datetime.strptime(y, '%d-%m-%Y %I:%M:%S %p')
|
||||
if expiry < now:
|
||||
print("Expired complainter found")
|
||||
expired_keys.append(x)
|
||||
|
||||
# Remove expired keys
|
||||
for key in expired_keys:
|
||||
customers.pop(key)
|
||||
|
||||
|
||||
def checkExpiredclaim():
|
||||
customers = get_custom()['coin_claim']
|
||||
expired_keys = []
|
||||
|
||||
for x in customers:
|
||||
y = customers[x]['expiry']
|
||||
now = datetime.now()
|
||||
expiry = datetime.strptime(y, '%d-%m-%Y %H:%M:%S')
|
||||
if expiry < now:
|
||||
print("Expired claimed player found")
|
||||
expired_keys.append(x)
|
||||
|
||||
# Remove expired keys
|
||||
for key in expired_keys:
|
||||
customers.pop(key)
|
||||
|
||||
|
||||
def unmute_mongo(account_id: str) -> None:
|
||||
"""Unmutes the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
acccount id of the player to be unmuted
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["isMuted"] = False
|
||||
CacheData.profiles=profiles
|
||||
_thread.start_new_thread(commit_profiles, (profiles,))
|
||||
|
||||
|
||||
def mute(account_id: str, duration_in_days: float, reason: str) -> None:
|
||||
"""Mutes the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
acccount id of the player to be muted
|
||||
"""
|
||||
ban_time = datetime.now() + timedelta(days=duration_in_days)
|
||||
|
||||
CacheData.blacklist["muted-ids"][account_id] = {"till": ban_time.strftime(
|
||||
"%Y-%m-%d %H:%M:%S"), "reason": reason}
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def unmute(account_id: str) -> None:
|
||||
"""Unmutes the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
acccount id of the player to be unmuted
|
||||
"""
|
||||
CacheData.blacklist["muted-ids"].pop(account_id, None)
|
||||
_thread.start_new_thread(update_blacklist, ())
|
||||
|
||||
|
||||
def update_spam(account_id: str, spam_count: int, last_spam: float) -> None:
|
||||
"""Updates the spam time and count.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
spam_count : int
|
||||
spam count to be added
|
||||
last_spam : float
|
||||
last spam time
|
||||
"""
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["spamCount"] = spam_count
|
||||
profiles[account_id]["lastSpam"] = last_spam
|
||||
CacheData.profiles = profiles
|
||||
commit_profiles(profiles)
|
||||
|
||||
def player_count(account_id):
|
||||
profiles = get_profiles()
|
||||
if account_id in profiles:
|
||||
profiles[account_id]["rejoincount"] += 1
|
||||
serverdata.clients[account_id] = profiles[account_id]
|
||||
CacheData.profiles = profiles
|
||||
commit_profiles(profiles)
|
||||
print(f"Rejoin count for {account_id}: {profiles[account_id]['rejoincount']}")
|
||||
|
||||
|
||||
def commit_roles(data: dict) -> None:
|
||||
"""Commits the roles in database.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
data : dict
|
||||
data to be commited
|
||||
"""
|
||||
if not data:
|
||||
return
|
||||
|
||||
# with OpenJson(PLAYERS_DATA_PATH + "roles.json") as roles_file:
|
||||
# roles_file.format(data)
|
||||
|
||||
|
||||
def get_roles() -> dict:
|
||||
"""Returns the roles.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
roles
|
||||
"""
|
||||
if CacheData.roles == {}:
|
||||
try:
|
||||
f = open(PLAYERS_DATA_PATH + "roles.json", "r")
|
||||
roles = json.load(f)
|
||||
f.close()
|
||||
CacheData.roles = roles
|
||||
except Exception as e:
|
||||
print(e)
|
||||
f = open(PLAYERS_DATA_PATH + "roles.json.backup", "r")
|
||||
roles = json.load(f)
|
||||
f.close()
|
||||
CacheData.roles = roles
|
||||
return CacheData.roles
|
||||
|
||||
|
||||
def create_role(role: str) -> None:
|
||||
"""Ceates the role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to be created
|
||||
"""
|
||||
roles = get_roles()
|
||||
|
||||
if role in roles:
|
||||
return
|
||||
|
||||
roles[role] = {
|
||||
"tag": role,
|
||||
"tagcolor": [1, 1, 1],
|
||||
"commands": [],
|
||||
"ids": [],
|
||||
}
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
|
||||
|
||||
def add_player_role(role: str, account_id: str) -> None:
|
||||
"""Adds the player to the role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to be added
|
||||
account_id : str
|
||||
account id of the client
|
||||
"""
|
||||
roles = get_roles()
|
||||
|
||||
if role in roles:
|
||||
if account_id not in roles[role]["ids"]:
|
||||
roles[role]["ids"].append(account_id)
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
|
||||
else:
|
||||
print("no role such")
|
||||
|
||||
|
||||
def remove_player_role(role: str, account_id: str) -> str:
|
||||
"""Removes the role from player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to br removed
|
||||
account_id : str
|
||||
account id of the client
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
status of the removing role
|
||||
"""
|
||||
roles = get_roles()
|
||||
if role in roles:
|
||||
roles[role]["ids"].remove(account_id)
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
return "removed from " + role
|
||||
return "role not exists"
|
||||
|
||||
|
||||
def add_command_role(role: str, command: str) -> str:
|
||||
"""Adds the command to the role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to add the command
|
||||
command : str
|
||||
command to be added
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
status of the adding command
|
||||
"""
|
||||
roles = get_roles()
|
||||
if role in roles:
|
||||
if command not in roles[role]["commands"]:
|
||||
roles[role]["commands"].append(command)
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
return "command added to " + role
|
||||
return "command not exists"
|
||||
|
||||
|
||||
def remove_command_role(role: str, command: str) -> str:
|
||||
"""Removes the command from the role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to remove command from
|
||||
command : str
|
||||
command to be removed
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
status of the removing command
|
||||
"""
|
||||
roles = get_roles()
|
||||
if role in roles:
|
||||
if command in roles[role]["commands"]:
|
||||
roles[role]["commands"].remove(command)
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
return "command added to " + role
|
||||
return "command not exists"
|
||||
|
||||
|
||||
def change_role_tag(role: str, tag: str) -> str:
|
||||
"""Changes the tag of the role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
role : str
|
||||
role to chnage the tag
|
||||
tag : str
|
||||
tag to be added
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
status of the adding tag
|
||||
"""
|
||||
roles = get_roles()
|
||||
if role in roles:
|
||||
roles[role]["tag"] = tag
|
||||
CacheData.roles = roles
|
||||
commit_roles(roles)
|
||||
return "tag changed"
|
||||
return "role not exists"
|
||||
|
||||
|
||||
def get_player_roles(account_id: str) -> list[str]:
|
||||
"""Returns the avalibe roles of the account.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
|
||||
Returns
|
||||
-------
|
||||
list[str]
|
||||
list of the roles
|
||||
"""
|
||||
|
||||
roles = get_roles()
|
||||
have_roles = []
|
||||
for role in roles:
|
||||
if account_id in roles[role]["ids"]:
|
||||
have_roles.append(role)
|
||||
return have_roles
|
||||
|
||||
|
||||
def get_custom() -> dict:
|
||||
"""Returns the custom effects.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
custom effects
|
||||
"""
|
||||
if CacheData.custom == {}:
|
||||
try:
|
||||
f=open(PLAYERS_DATA_PATH + "custom.json","r")
|
||||
custom = json.load(f)
|
||||
f.close()
|
||||
CacheData.custom=custom
|
||||
except:
|
||||
f=open(PLAYERS_DATA_PATH + "custom.json.backup","r")
|
||||
custom = json.load(f)
|
||||
f.close()
|
||||
CacheData.custom=custom
|
||||
return CacheData.custom
|
||||
|
||||
def set_effect(effect: str, accout_id: str) -> None:
|
||||
|
||||
return
|
||||
|
||||
|
||||
def set_effect(effect: str, accout_id: str) -> None:
|
||||
"""Sets the costum effect for the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
effect : str
|
||||
effect to be added to the player
|
||||
accout_id : str
|
||||
account id of the client
|
||||
"""
|
||||
custom = get_custom()
|
||||
custom["customeffects"][accout_id] = effect
|
||||
CacheData.custom = custom
|
||||
commit_c()
|
||||
|
||||
|
||||
def set_tag(tag: str, account_id: str) -> None:
|
||||
"""Sets the custom tag to the player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
tag : str
|
||||
tag to be added to the player
|
||||
account_id : str
|
||||
account id of the client
|
||||
"""
|
||||
custom = get_custom()
|
||||
custom["customtag"][account_id] = tag
|
||||
CacheData.custom = custom
|
||||
commit_c()
|
||||
|
||||
|
||||
def update_roles(roles):
|
||||
CacheData.roles = roles
|
||||
|
||||
|
||||
def get_custom_perks():
|
||||
return CacheData.custom
|
||||
|
||||
|
||||
def update_custom_perks(custom):
|
||||
CacheData.custom = custom
|
||||
|
||||
|
||||
def remove_effect(account_id: str) -> None:
|
||||
"""Removes the effect from player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
"""
|
||||
custom = get_custom()
|
||||
custom["customeffects"].pop(account_id)
|
||||
CacheData.custom = custom
|
||||
|
||||
|
||||
def remove_paid_effect(account_id: str) -> None:
|
||||
"""Removes the effect from player.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
"""
|
||||
custom = get_custom()
|
||||
custom["paideffects"].pop(account_id, None)
|
||||
CacheData.custom = custom
|
||||
|
||||
|
||||
def remove_tag(account_id: str) -> None:
|
||||
"""Removes the tag from the player
|
||||
|
||||
Parameters
|
||||
----------
|
||||
account_id : str
|
||||
account id of the client
|
||||
"""
|
||||
custom = get_custom()
|
||||
custom["customtag"].pop(account_id)
|
||||
CacheData.custom = custom
|
||||
|
||||
|
||||
def commit_c():
|
||||
"""Commits the custom data into the custom.json."""
|
||||
# with OpenJson(PLAYERS_DATA_PATH + "custom.json") as custom_file:
|
||||
# custom_file.dump(CacheData.custom, indent=4)
|
||||
|
||||
|
||||
def update_toppers(topper_list: list[str]) -> None:
|
||||
"""Updates the topper list into top5 role.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
topper_list : list[str]
|
||||
list of the topper players
|
||||
"""
|
||||
roles = get_roles()
|
||||
if "top5" not in roles:
|
||||
create_role("top5")
|
||||
CacheData.roles["top5"]["ids"] = topper_list
|
||||
commit_roles(roles)
|
||||
|
||||
|
||||
def load_white_list() -> None:
|
||||
"""Loads the whitelist."""
|
||||
with OpenJson(PLAYERS_DATA_PATH + "whitelist.json") as whitelist_file:
|
||||
data = whitelist_file.load()
|
||||
for account_id in data:
|
||||
CacheData.whitelist.append(account_id)
|
||||
|
||||
|
||||
def load_cache():
|
||||
""" to be called on server boot"""
|
||||
get_profiles()
|
||||
get_custom()
|
||||
get_roles()
|
||||
|
||||
|
||||
def dump_cache():
|
||||
if CacheData.profiles != {}:
|
||||
shutil.copyfile(PLAYERS_DATA_PATH + "profiles.json",
|
||||
PLAYERS_DATA_PATH + "profiles.json.backup")
|
||||
profiles = copy.deepcopy(CacheData.profiles)
|
||||
with open(PLAYERS_DATA_PATH + "profiles.json", "w") as f:
|
||||
json.dump(profiles, f, indent=4)
|
||||
if CacheData.roles != {}:
|
||||
shutil.copyfile(PLAYERS_DATA_PATH + "roles.json",
|
||||
PLAYERS_DATA_PATH + "roles.json.backup")
|
||||
roles = copy.deepcopy(CacheData.roles)
|
||||
with open(PLAYERS_DATA_PATH + "roles.json", "w") as f:
|
||||
json.dump(roles, f, indent=4)
|
||||
if CacheData.custom != {}:
|
||||
shutil.copyfile(PLAYERS_DATA_PATH + "custom.json",
|
||||
PLAYERS_DATA_PATH + "custom.json.backup")
|
||||
custom = copy.deepcopy(CacheData.custom)
|
||||
with open(PLAYERS_DATA_PATH + "custom.json", "w") as f:
|
||||
json.dump(custom, f, indent=4)
|
||||
time.sleep(60)
|
||||
dump_cache()
|
||||
275
dist/ba_root/mods/playersData/profiles.json
vendored
Normal file
275
dist/ba_root/mods/playersData/profiles.json
vendored
Normal file
|
|
@ -0,0 +1,275 @@
|
|||
{
|
||||
"pb-IF4TVWwZUQ=9=": {
|
||||
"display_string": "\ue030PC295588",
|
||||
"profiles": [],
|
||||
"name": "\ue030PC295588",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1637911682.2054627
|
||||
},
|
||||
"pb-IF5XUm9eAg==": {
|
||||
"display_string": [
|
||||
"\ue030PC402015"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC402015",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2021-11-12 20:30:30",
|
||||
"registerOn": 1636801177.809589,
|
||||
"canStartKickVote": true,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"spamCount": 4,
|
||||
"lastSpam": 1637912278.8745685
|
||||
},
|
||||
"pb-IF4eUxk5KA==": {
|
||||
"display_string": [
|
||||
"\ue063HeySmoothy"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063HeySmoothy",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-05-29 21:53:44",
|
||||
"registerOn": 1655022106.4740922,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1655022106.4740927,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1655552812.9632144,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1655552812.963215,
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1655406931.728448,
|
||||
"lastMsg": "ok",
|
||||
"cSameMsg": 0,
|
||||
"lastIP": "axj~}j~~n`ai",
|
||||
"deviceUUID": "eedccec9b0c17d3716b936981bb753c3872d905c"
|
||||
},
|
||||
"pb-IF4RU2ECAg==": {
|
||||
"display_string": [
|
||||
"\ue030PC452402"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC452402",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-06-04 01:42:22",
|
||||
"registerOn": 1655407521.4853234,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1655407521.4853249,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1658055515.14302,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1658055515.143022,
|
||||
"lastIP": "axj~|h~|j~~",
|
||||
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042"
|
||||
},
|
||||
"pb-IF43U2cIVw==": {
|
||||
"display_string": "\ue063Smoothy",
|
||||
"profiles": [],
|
||||
"name": "\ue063Smoothy",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-06-23 22:27:13",
|
||||
"registerOn": 1656442709.8344862,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1656442709.8344867,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1656527532.2340264,
|
||||
"verified": true,
|
||||
"rejoincount": 0,
|
||||
"lastJoin": 1656527777.355527,
|
||||
"lastIP": "axj~}m~}jdai",
|
||||
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1656525491.3282282,
|
||||
"lastMsg": "/end",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4sUHMOIw==": {
|
||||
"display_string": [
|
||||
"\ue063V0RTEX"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063V0RTEX",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-10 23:52:57",
|
||||
"registerOn": 1704807839.071344,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1704807839.0713444,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1705029565.0774016,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1705029565.0774035,
|
||||
"lastIP": "a\u007fn~}iaaiavvev",
|
||||
"deviceUUID": "a8b84df3fb109d5a1a290ea85212c354a3a51298",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1704964659.585343,
|
||||
"lastMsg": "/cs",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH": {
|
||||
"display_string": [
|
||||
"\ue063SARA0786",
|
||||
"\ue063FIGHTER122",
|
||||
"\ue030Android47677496"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063FIGHTER122",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2016-08-27 13:24:31",
|
||||
"registerOn": 1704808688.0421185,
|
||||
"spamCount": 1,
|
||||
"lastSpam": 1707891580.140225,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708097287.865969,
|
||||
"verified": true,
|
||||
"rejoincount": 3,
|
||||
"lastJoin": 1708097338.7186177,
|
||||
"lastIP": "a~o~va~}lfaj`z",
|
||||
"deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708097316.1242073,
|
||||
"lastMsg": "huuuu",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4BUlQBJw==": {
|
||||
"display_string": [
|
||||
"\ue063V0RT3X"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063V0RT3X",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-04-03 10:56:42",
|
||||
"registerOn": 1705305467.8431177,
|
||||
"spamCount": 1,
|
||||
"lastSpam": 1705396005.006269,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708433666.3171666,
|
||||
"verified": true,
|
||||
"rejoincount": 2,
|
||||
"lastJoin": 1708433666.3171737,
|
||||
"lastIP": "a\u007fn~}jaajb}vb\u007fl",
|
||||
"deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708192508.6691594,
|
||||
"lastMsg": "I am leaving ",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4rU20MHQ==": {
|
||||
"display_string": [
|
||||
"\ue030PC591985"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC591985",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-07-16 06:30:46",
|
||||
"registerOn": 1705315905.216353,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1705315905.2163541,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1705318616.0841997,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1705318616.0842018,
|
||||
"lastIP": "azj~z`~}kbaj`",
|
||||
"deviceUUID": "b80196395225319f9386f93eca76a3bbde84f2cf",
|
||||
"cMsgCount": 1,
|
||||
"lastMsgTime": 1705316018.9749002,
|
||||
"lastMsg": "let me ask smoooth",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4RUHUCVA==": {
|
||||
"display_string": [
|
||||
"\ue030Android65730490"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65730490",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-16 03:00:32",
|
||||
"registerOn": 1705480535.5985098,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1705480535.5985103,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1706772332.4147544,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1706772332.4147553,
|
||||
"lastIP": "a~o~va~}lfaoh",
|
||||
"deviceUUID": "45726190c674ff903b471ac1a05dd0c28666ba2b",
|
||||
"cMsgCount": 1,
|
||||
"lastMsgTime": 1706767561.0383077,
|
||||
"lastMsg": "/comp 114 \ud83c\udf89\ud83c\udf89\ud83c\udf89\ud83c\udf89\ud83c\udf89",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF48UHQcKA==": {
|
||||
"display_string": [
|
||||
"\ue030Android65683442"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65683442",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-10 21:11:00",
|
||||
"registerOn": 1706625867.13129,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1706625867.1312912,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1706625867.1312978,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1706625867.1312988,
|
||||
"lastIP": "a~o~va~}l`aje|",
|
||||
"deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6"
|
||||
},
|
||||
"pb-IF4UUG4gMw==": {
|
||||
"display_string": [
|
||||
"\ue030Android65367623"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65367623",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-07-01 23:28:24",
|
||||
"registerOn": 1707945856.65806,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1707945856.6580606,
|
||||
"totaltimeplayer": 0,
|
||||
"rejoincount": 2,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708245846.9040234,
|
||||
"verified": true,
|
||||
"lastJoin": 1708245846.9040248,
|
||||
"lastIP": "a\u007fn~}ifaje\u007fvb~n",
|
||||
"deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708205713.0860884,
|
||||
"lastMsg": "/bsc",
|
||||
"cSameMsg": 0
|
||||
}
|
||||
}
|
||||
275
dist/ba_root/mods/playersData/profiles.json.backup
vendored
Normal file
275
dist/ba_root/mods/playersData/profiles.json.backup
vendored
Normal file
|
|
@ -0,0 +1,275 @@
|
|||
{
|
||||
"pb-IF4TVWwZUQ=9=": {
|
||||
"display_string": "\ue030PC295588",
|
||||
"profiles": [],
|
||||
"name": "\ue030PC295588",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1637911682.2054627
|
||||
},
|
||||
"pb-IF5XUm9eAg==": {
|
||||
"display_string": [
|
||||
"\ue030PC402015"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC402015",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2021-11-12 20:30:30",
|
||||
"registerOn": 1636801177.809589,
|
||||
"canStartKickVote": true,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"spamCount": 4,
|
||||
"lastSpam": 1637912278.8745685
|
||||
},
|
||||
"pb-IF4eUxk5KA==": {
|
||||
"display_string": [
|
||||
"\ue063HeySmoothy"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063HeySmoothy",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-05-29 21:53:44",
|
||||
"registerOn": 1655022106.4740922,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1655022106.4740927,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1655552812.9632144,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1655552812.963215,
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1655406931.728448,
|
||||
"lastMsg": "ok",
|
||||
"cSameMsg": 0,
|
||||
"lastIP": "axj~}j~~n`ai",
|
||||
"deviceUUID": "eedccec9b0c17d3716b936981bb753c3872d905c"
|
||||
},
|
||||
"pb-IF4RU2ECAg==": {
|
||||
"display_string": [
|
||||
"\ue030PC452402"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC452402",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-06-04 01:42:22",
|
||||
"registerOn": 1655407521.4853234,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1655407521.4853249,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1658055515.14302,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1658055515.143022,
|
||||
"lastIP": "axj~|h~|j~~",
|
||||
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042"
|
||||
},
|
||||
"pb-IF43U2cIVw==": {
|
||||
"display_string": "\ue063Smoothy",
|
||||
"profiles": [],
|
||||
"name": "\ue063Smoothy",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-06-23 22:27:13",
|
||||
"registerOn": 1656442709.8344862,
|
||||
"canStartKickVote": true,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1656442709.8344867,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1656527532.2340264,
|
||||
"verified": true,
|
||||
"rejoincount": 0,
|
||||
"lastJoin": 1656527777.355527,
|
||||
"lastIP": "axj~}m~}jdai",
|
||||
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1656525491.3282282,
|
||||
"lastMsg": "/end",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4sUHMOIw==": {
|
||||
"display_string": [
|
||||
"\ue063V0RTEX"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063V0RTEX",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-10 23:52:57",
|
||||
"registerOn": 1704807839.071344,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1704807839.0713444,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1705029565.0774016,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1705029565.0774035,
|
||||
"lastIP": "a\u007fn~}iaaiavvev",
|
||||
"deviceUUID": "a8b84df3fb109d5a1a290ea85212c354a3a51298",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1704964659.585343,
|
||||
"lastMsg": "/cs",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH": {
|
||||
"display_string": [
|
||||
"\ue063SARA0786",
|
||||
"\ue063FIGHTER122",
|
||||
"\ue030Android47677496"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063FIGHTER122",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2016-08-27 13:24:31",
|
||||
"registerOn": 1704808688.0421185,
|
||||
"spamCount": 1,
|
||||
"lastSpam": 1707891580.140225,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708097287.865969,
|
||||
"verified": true,
|
||||
"rejoincount": 3,
|
||||
"lastJoin": 1708097338.7186177,
|
||||
"lastIP": "a~o~va~}lfaj`z",
|
||||
"deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708097316.1242073,
|
||||
"lastMsg": "huuuu",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4BUlQBJw==": {
|
||||
"display_string": [
|
||||
"\ue063V0RT3X"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue063V0RT3X",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-04-03 10:56:42",
|
||||
"registerOn": 1705305467.8431177,
|
||||
"spamCount": 1,
|
||||
"lastSpam": 1705396005.006269,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708433666.3171666,
|
||||
"verified": true,
|
||||
"rejoincount": 2,
|
||||
"lastJoin": 1708433666.3171737,
|
||||
"lastIP": "a\u007fn~}jaajb}vb\u007fl",
|
||||
"deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708192508.6691594,
|
||||
"lastMsg": "I am leaving ",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4rU20MHQ==": {
|
||||
"display_string": [
|
||||
"\ue030PC591985"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC591985",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2022-07-16 06:30:46",
|
||||
"registerOn": 1705315905.216353,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1705315905.2163541,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1705318616.0841997,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1705318616.0842018,
|
||||
"lastIP": "azj~z`~}kbaj`",
|
||||
"deviceUUID": "b80196395225319f9386f93eca76a3bbde84f2cf",
|
||||
"cMsgCount": 1,
|
||||
"lastMsgTime": 1705316018.9749002,
|
||||
"lastMsg": "let me ask smoooth",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF4RUHUCVA==": {
|
||||
"display_string": [
|
||||
"\ue030Android65730490"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65730490",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-16 03:00:32",
|
||||
"registerOn": 1705480535.5985098,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1705480535.5985103,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1706772332.4147544,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1706772332.4147553,
|
||||
"lastIP": "a~o~va~}lfaoh",
|
||||
"deviceUUID": "45726190c674ff903b471ac1a05dd0c28666ba2b",
|
||||
"cMsgCount": 1,
|
||||
"lastMsgTime": 1706767561.0383077,
|
||||
"lastMsg": "/comp 114 \ud83c\udf89\ud83c\udf89\ud83c\udf89\ud83c\udf89\ud83c\udf89",
|
||||
"cSameMsg": 0
|
||||
},
|
||||
"pb-IF48UHQcKA==": {
|
||||
"display_string": [
|
||||
"\ue030Android65683442"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65683442",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-08-10 21:11:00",
|
||||
"registerOn": 1706625867.13129,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1706625867.1312912,
|
||||
"totaltimeplayer": 0,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1706625867.1312978,
|
||||
"verified": true,
|
||||
"rejoincount": 1,
|
||||
"lastJoin": 1706625867.1312988,
|
||||
"lastIP": "a~o~va~}l`aje|",
|
||||
"deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6"
|
||||
},
|
||||
"pb-IF4UUG4gMw==": {
|
||||
"display_string": [
|
||||
"\ue030Android65367623"
|
||||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030Android65367623",
|
||||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"accountAge": "2023-07-01 23:28:24",
|
||||
"registerOn": 1707945856.65806,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1707945856.6580606,
|
||||
"totaltimeplayer": 0,
|
||||
"rejoincount": 2,
|
||||
"warnCount": 0,
|
||||
"lastWarned": 1708245846.9040234,
|
||||
"verified": true,
|
||||
"lastJoin": 1708245846.9040248,
|
||||
"lastIP": "a\u007fn~}ifaje\u007fvb~n",
|
||||
"deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e",
|
||||
"cMsgCount": 0,
|
||||
"lastMsgTime": 1708205713.0860884,
|
||||
"lastMsg": "/bsc",
|
||||
"cSameMsg": 0
|
||||
}
|
||||
}
|
||||
105
dist/ba_root/mods/playersData/roles.json
vendored
Normal file
105
dist/ba_root/mods/playersData/roles.json
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"owner": {
|
||||
"tag": "\\cowner\\c",
|
||||
"tagcolor": [
|
||||
1,
|
||||
0.6,
|
||||
0.4
|
||||
],
|
||||
"commands": [
|
||||
"ALL"
|
||||
],
|
||||
"ids": [
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH"
|
||||
]
|
||||
},
|
||||
"admin": {
|
||||
"tag": "\ue043admin\ue043",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [
|
||||
"createrole",
|
||||
"quit",
|
||||
"ALL"
|
||||
],
|
||||
"ids": []
|
||||
},
|
||||
"vip": {
|
||||
"tag": "vip",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [
|
||||
"ALL"
|
||||
],
|
||||
"ids": [
|
||||
"pb-IF4BUlQBJw=="
|
||||
]
|
||||
},
|
||||
"smoothy": {
|
||||
"tag": "smoothy",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
},
|
||||
"pros": {
|
||||
"tag": "pros",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
},
|
||||
"top5": {
|
||||
"tag": "top5",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": [
|
||||
"pb-IF4VAk4a",
|
||||
"pb-IF4BUlQBJw==",
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH",
|
||||
"pb-IF4UUG4gMw=="
|
||||
]
|
||||
},
|
||||
"bypass-warn": {
|
||||
"tag": "",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": [
|
||||
"pb-IF5XUm9eAg==",
|
||||
"pb-IF43VUwlAg==",
|
||||
"pb-IF4iVUc5Cg==",
|
||||
"pb-IF4vNnMJ",
|
||||
"pb-IF4TVWwZUQ=="
|
||||
]
|
||||
},
|
||||
"lol": {
|
||||
"tag": "lol",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
}
|
||||
}
|
||||
105
dist/ba_root/mods/playersData/roles.json.backup
vendored
Normal file
105
dist/ba_root/mods/playersData/roles.json.backup
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"owner": {
|
||||
"tag": "\\cowner\\c",
|
||||
"tagcolor": [
|
||||
1,
|
||||
0.6,
|
||||
0.4
|
||||
],
|
||||
"commands": [
|
||||
"ALL"
|
||||
],
|
||||
"ids": [
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH"
|
||||
]
|
||||
},
|
||||
"admin": {
|
||||
"tag": "\ue043admin\ue043",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [
|
||||
"createrole",
|
||||
"quit",
|
||||
"ALL"
|
||||
],
|
||||
"ids": []
|
||||
},
|
||||
"vip": {
|
||||
"tag": "vip",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [
|
||||
"ALL"
|
||||
],
|
||||
"ids": [
|
||||
"pb-IF4BUlQBJw=="
|
||||
]
|
||||
},
|
||||
"smoothy": {
|
||||
"tag": "smoothy",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
},
|
||||
"pros": {
|
||||
"tag": "pros",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
},
|
||||
"top5": {
|
||||
"tag": "top5",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": [
|
||||
"pb-IF4VAk4a",
|
||||
"pb-IF4BUlQBJw==",
|
||||
"pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH",
|
||||
"pb-IF4UUG4gMw=="
|
||||
]
|
||||
},
|
||||
"bypass-warn": {
|
||||
"tag": "",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": [
|
||||
"pb-IF5XUm9eAg==",
|
||||
"pb-IF43VUwlAg==",
|
||||
"pb-IF4iVUc5Cg==",
|
||||
"pb-IF4vNnMJ",
|
||||
"pb-IF4TVWwZUQ=="
|
||||
]
|
||||
},
|
||||
"lol": {
|
||||
"tag": "lol",
|
||||
"tagcolor": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"commands": [],
|
||||
"ids": []
|
||||
}
|
||||
}
|
||||
31
dist/ba_root/mods/playersData/subscribed_players.json
vendored
Normal file
31
dist/ba_root/mods/playersData/subscribed_players.json
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"pb-IF41U2scIg==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
]
|
||||
},
|
||||
"pb-IF4IVFkKNA==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue063ATTITUDEB2"
|
||||
},
|
||||
"pb-IF4CKhYn": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue032Rico Un\u2122\u00a9\u00ae"
|
||||
},
|
||||
"pb-IF4jF1NY": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue01eHoemaster"
|
||||
},
|
||||
"pb-IF4wVVk8Jg==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue063Homulilly"
|
||||
}
|
||||
}
|
||||
31
dist/ba_root/mods/playersData/subscribed_players.json.backup
vendored
Normal file
31
dist/ba_root/mods/playersData/subscribed_players.json.backup
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"pb-IF41U2scIg==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
]
|
||||
},
|
||||
"pb-IF4IVFkKNA==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue063ATTITUDEB2"
|
||||
},
|
||||
"pb-IF4CKhYn": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue032Rico Un\u2122\u00a9\u00ae"
|
||||
},
|
||||
"pb-IF4jF1NY": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue01eHoemaster"
|
||||
},
|
||||
"pb-IF4wVVk8Jg==": {
|
||||
"subscribers": [
|
||||
"jrz6Rg"
|
||||
],
|
||||
"name": "\ue063Homulilly"
|
||||
}
|
||||
}
|
||||
10
dist/ba_root/mods/playersData/subscriptions.json
vendored
Normal file
10
dist/ba_root/mods/playersData/subscriptions.json
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"jrz6Rg": {
|
||||
"endpoint": "https://wns2-pn1p.notify.windows.com/w/?token=8nmgbauneNBqKw7H6IGl",
|
||||
"expirationTime": null,
|
||||
"keys": {
|
||||
"p256dh": "BOG4rFeziA",
|
||||
"auth": "yNIDrg"
|
||||
}
|
||||
}
|
||||
}
|
||||
10
dist/ba_root/mods/playersData/subscriptions.json.backup
vendored
Normal file
10
dist/ba_root/mods/playersData/subscriptions.json.backup
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"jrz6Rg": {
|
||||
"endpoint": "https://wns2-pn1p.notify.windows.com/w/?token=8nmgbauneNBqKw7H6IGl",
|
||||
"expirationTime": null,
|
||||
"keys": {
|
||||
"p256dh": "BOG4rFeziA",
|
||||
"auth": "yNIDrg"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
dist/ba_root/mods/playersData/whitelist.json
vendored
Normal file
8
dist/ba_root/mods/playersData/whitelist.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"": [
|
||||
" G O K U 🤡 "
|
||||
],
|
||||
"pb-IF5VVxI5Fg==": [
|
||||
"\ue020id just to remeber pbid here"
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue