Files
tipibot/strings/common.py
Rene Arumetsa 4cd13503a7 feat(status): show money-supply metric in /status
Adds economy.get_economy_stats() (single-scan total coins, house balance,
player-held coins, player count) and a "Rahavaru" field to /status, so admins
can see whether the sinks are keeping pace with minted income. Also removed a
duplicate bot_admin_check import.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VbAVsrZuYesea99mPMmPT
2026-09-04 02:28:19 +03:00

252 lines
12 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Shared / system-wide strings (messages, titles, errors, cooldowns).
Auto-split from the original strings.py; edit strings here.
"""
from core.emoji import EMOJI as E
__all__ = [
'MSG_BANNED',
'MSG_SPAM_JAIL',
'MSG_PONG',
'MSG_RESTART_DONE',
'MSG_RESTARTING',
'MSG_SHUTTING_DOWN',
'MSG_PAUSED',
'MSG_UNPAUSED',
'MSG_MAINTENANCE',
'MSG_SYNC_DONE',
'MSG_REMINDER',
'MSG_LEVELUP',
'MSG_LEVELUP_ROLE',
'REMINDER_OPTS',
'TITLE',
'ERR',
'CD_MSG',
'REMINDERS_UI',
'SEND_UI',
'PATCHNOTES_UI',
'STATUS_UI',
]
# ---------------------------------------------------------------------------
# Repeated system messages
# ---------------------------------------------------------------------------
MSG_BANNED = "🚫 Sul keelati TipiBOTi majandussüsteemis osaleda."
MSG_SPAM_JAIL = "⚠️ Liiga kiire! Automaatsed skriptid/spam on keelatud. Oled **30 minutit vangis**. Kasuta `/jailbreak`, et varem välja pääseda."
MSG_PONG = "🏓 Pong!"
MSG_RESTART_DONE = "✅ Bot on taaskäivitatud!"
MSG_RESTARTING = "🔄 Taaskäivitan..."
MSG_SHUTTING_DOWN = "⛔ Lülitan boti välja..."
MSG_PAUSED = "⏸️ Bot on hooldusrežiimis - kõik käsklused on peatatud."
MSG_UNPAUSED = "▶️ Hooldusrežiim lõpetatud - käsklused on taas saadaval."
MSG_MAINTENANCE = "🔧 Bot on hetkel hoolduses. Proovi mõne hetke pärast uuesti."
MSG_SYNC_DONE = "✅ Käsud sünkroniseeritud!"
MSG_REMINDER = "⏰ **/{cmd}** on taas kasutamiseks valmis!\n-# Meeldetuletuste haldamiseks kasuta serveris `/reminders`."
MSG_LEVELUP = "⬆️ **{name}** jõudis **{level}. tasemele**!{extra}"
MSG_LEVELUP_ROLE = " 🎊 Uus tiitel: **{role}**!"
# ---------------------------------------------------------------------------
# /reminders dropdown options (cmd_key, label, description)
# ---------------------------------------------------------------------------
REMINDER_OPTS: list[tuple[str, str, str]] = [
("daily", "📅 /daily", "Päevane boonus (20t ooteaeg)"),
("work", "💼 /work", "Töö (1t ooteaeg, 40min monitoriga)"),
("beg", "🙏 /beg", "Kerjamine (5min ooteaeg)"),
("crime", "🦹 /crime", "Kuritegu (2t ooteaeg)"),
("rob", "🔫 /rob", "Rööv (2t ooteaeg)"),
("fish", "🎣 /fish", "Kalapüük (2min ooteaeg)"),
]
# ---------------------------------------------------------------------------
# Embed titles
# ---------------------------------------------------------------------------
TITLE: dict[str, str] = {
"daily": "📅 Päevane boonus",
"work": "💼 Töö",
"beg": "🙏 Kerjamine",
"crime_win": f"{E['TipiFIRE']} Kuritegu õnnestus!",
"crime_fail": f"{E['TipiTROLL']} Vahele jäid!",
"rob_win": f"{E['TipiFIRE']} Rööv õnnestus!",
"rob_fail": f"{E['TipiTROLL']} Rööv ebaõnnestus!",
"rob_anticheat": f"{E['TipiVAC']} Anticheat peatas sind!",
"jailbreak": "🎲 Vanglast põgenemine",
"jailbreak_free": f"🎲 {E['TipiFIRE']} DUUBEL! Oled vaba!",
"jailbreak_fail": f"{E['TipICRY']} Kolm katset läbi!",
"jailbreak_miss": "🎲 " + E["TipICRY"] + " Ei saanud duublit ({tries}/{max})",
"jailbreak_bail": "💸 Kautsjon",
"give": f"{E['TipiHEART']} TipiCOINi ülekanne",
"stats": "📊 Mängustatistika",
"leaderboard_coins": "🪙 TipiBOTi edetabel - Mündid",
"leaderboard_exp": "📊 TipiBOTi edetabel - EXP / Tase",
"leaderboard_season": "🏆 TipiBOTi edetabel - Hooaja EXP",
"leaderboard_prestige": f"{E['TipiFIRE']} TipiBOTi edetabel - Prestiiž",
"leaderboard_wagered": "🎲 TipiBOTi edetabel - Hasartmängud",
"leaderboard_fish": "🎣 TipiBOTi edetabel - Kalapüük",
"rps": "⚔️ Kivi, Paber, Käärid",
"rps_duel": "⚔️ KPK duell",
"rps_duel_active": "⚔️ KPK duell - käimas",
"rps_duel_done": "⚔️ KPK duell - lõppenud",
"rps_duel_cancel": "⚔️ KPK duell - tühistatud",
"rps_duel_expire": "⚔️ KPK duell - aegus",
"rps_duel_decline": "⚔️ KPK duell - keelduti",
"heist_lobby": "🔫 Grupirööv - kogunemine",
"heist_win": f"{E['TipiFIRE']} Grupirööv õnnestus!",
"heist_fail": f"{E['TipiSKULL']} Grupirööv ebaõnnestus!",
"heist_cancel": "🔫 Grupirööv tühistatud",
"request": f"{E['TipiHEART']} Rahataotlus",
"reminders": "⏰ Meeldetuletused",
"cooldowns": "⏱️ Sinu ooteajad",
"adminseason": "🏆 Hooaeg lõppes!",
"economysetup": "⚙️ Majanduse seadistamine",
"blackjack": "🃏 Blackjack",
"blackjack_bj": f"🃏 {E['TipiFIRE']} BLACKJACK!",
"blackjack_win": f"{E['TipiFIRE']} Võitsid!",
"blackjack_lose": f"{E['TipiSKULL']} Kaotasid!",
"blackjack_bust": f"{E['TipiSKULL']} Üle 21 - kaotasid!",
"blackjack_push": "🤝 Viik!",
"blackjack_dbust": f"{E['TipiSKULL']} Üle 21 - mõlemad kaotasid!",
"blackjack_dwin": f"{E['TipiFIRE']} Topeltpanus võitis!",
"prestige_confirm": "🔥 Prestiiž - kinnita",
"prestige_success": E["TipiFIRE"] + " Prestiiž {level} saavutatud!",
"prestige_too_low": "❌ Prestiiž pole saadaval",
"prestige_shop": f"{E['TipiFIRE']} Prestiižipood",
"prestige_buy_ok": "✅ Uuendus ostetud!",
"fish_cast": "🎣 Otsid kala...",
"fish_bite": "🐟 KALA NÄKKAB!",
"fish_escape": "🎣 Kala pääses!",
"fish_junk": "🗑️ Ai ai ai...",
"fishbook": "📖 Kalakogu",
"quests": "🎯 Ülesanded",
}
# ---------------------------------------------------------------------------
# Error / validation messages (use .format(**kwargs) for dynamic parts)
# ---------------------------------------------------------------------------
ERR: dict[str, str] = {
"positive_bet": "❌ Panus peab olema positiivne.",
"positive_amount": "❌ Summa peab olema positiivne.",
"positive_duration": "❌ Aeg peab olema positiivne.",
"admincoins_zero": "Kogus ei tohi olla 0.",
"missing_perms": "❌ Sul on vaja **Rollide haldamise** õigust selle käsu kasutamiseks.",
"generic_error": "❌ Tekkis viga: ```{error}```",
"send_failed": "❌ Sõnumi saatmine ebaõnnestus: ```{error}```",
"rob_self": "❌ Sa ei saa iseennast röövida.",
"rob_bot": "❌ Botti ei saa röövida.",
"rob_no_house": "❌ Kassa pole veel avatud.",
"rob_house_blocked": "❌ Panga seif on liiga hästi kaitstud. Kasuta `/heist` selle rüüstamiseks.",
"rob_too_poor": "❌ **{name}** on liiga vaene röövimiseks.",
"rob_target_jailed": "❌ **{name}** on vanglas - vabad inimesed ei saa vanglas olevaid röövida.",
"heist_active": "❌ Serveris on juba aktiivne grupirööv käimas! Oota, kuni see lõpeb.",
"heist_full": "❌ Grupirööv on täis!",
"heist_min_players": "❌ Grupiröövi alustamiseks on vaja vähemalt **{min}** osalejat.",
"broke": E["TipICRY"] + " Sul pole piisavalt TipiCOINe. Saldo: {bal}",
"broke_need": E["TipICRY"] + " Sul pole piisavalt TipiCOINe. Vajad veel {need}.",
"item_owned": "❌ Sul on see ese juba olemas.",
"item_not_found": "❌ Eset ei leitud.",
"item_level_req": "🔒 Selle eseme ostmiseks vajad **taset {min_level}** (sul on tase {user_level}). Teeni EXP-id kõiki käske kasutades.",
"not_your_game": "❌ See pole sinu mäng!",
"game_in_progress": "❌ Sul on juba mäng käimas! Lõpeta see enne.",
"not_your_challenge":"❌ See väljakutse pole sulle!",
"not_your_menu": "❌ See ei ole sinu menüü.",
"give_self": "❌ Sa ei saa iseendale TipiCOINe anda.",
"give_bot": "❌ Botile ei saa TipiCOINe anda.",
"give_jailed": "❌ Oled vangis - vanglas ei saa TipiCOINe anda. Pääsed välja {ts}.",
"rps_self": "❌ Sa ei saa iseendale väljakutset esitada.",
"rps_bot": "❌ Botid on KPK-is liiga head.",
"not_jailed": "❌ Sa pole praegu vangis.",
"not_in_leaderboard":"❌ Sind pole veel edetabelis.",
"admin_ban_bot": "❌ Botti ei saa bannida.",
"admin_reset_bot": "❌ Kassa andmeid ei saa lähtestada.",
"member_not_found": "❌ **{name}** ei leitud tabelist.",
"request_self_fund": "❌ Sa ei saa oma taotlust ise rahastada.",
"request_self": "❌ Sa ei saa iseendalt anuda.",
"request_bot": "❌ Botid on teatavasti kitsid.",
"request_targeted": "❌ See taotlus on suunatud kasutajale **{name}**.",
"request_closed": "❌ See taotlus on juba rahastatud või aegunud.",
"already_in_game": "❌ Sul on juba aktiivne mäng käimas!",
"invalid_amount": "❌ Sisesta kehtiv summa või 'all'.",
"fund_range": "❌ Sisesta summa vahemikus 1-{max}.",
"channel_only": "❌ Boti käske saab kasutada ainult nendes kanalites: {channels}",
"guild_only": "Seda käsku saab kasutada ainult serveris.",
"sheet_error": "❌ Tabeli laadimine ebaõnnestus: ```{error}```",
"gamble_cooldown": "🎰 Oled just mänginud! Saad uuesti mängida {ts}.",
"payout_failed": "⚠️ Tehniline viga võidu väljamaksmisel - see on logitud ja admin taastab su TipiCOINid. Vabandame!",
"db_error": "⚠️ Andmebaas ei vasta praegu. Proovi hetke pärast uuesti.",
}
# ---------------------------------------------------------------------------
# Cooldown messages (use .format(ts=...) - ts is a Discord timestamp string)
# ---------------------------------------------------------------------------
CD_MSG: dict[str, str] = {
"daily": "⏳ Järgmine boonus {ts}.",
"work": "⏳ Saad töötada {ts}.",
"beg": "⏳ Saad kerjata {ts}.",
"crime": "⏳ Saad uuesti proovida {ts}.",
"rob": "⏳ Saad uuesti röövida {ts}.",
"heist": "⏳ Saad uuesti heisti teha {ts}.",
"heist_global": "⏳ Pangahoidla alles kosub eelmisest röövist. Järgmine heist võimalik {ts}.",
"jailed": E["TipiTROLL"] + " Oled vangis! Pääsed välja {ts}. Kasuta `/jailbreak`, et varem välja pääseda.",
"fish": "🎣 Saad uuesti kalastada {ts}.",
}
REMINDERS_UI: dict[str, str] = {
"select_placeholder": "Vali käsud, millest soovid meeldetuletust...",
"saved_on": "✅ Meeldetuletused sisse lülitatud: {names}",
"saved_off": "🔕 Kõik meeldetuletused välja lülitatud.",
"desc_active": "Praegu aktiivne: {status}\n\nMuuda valikut allpool.",
"desc_none": "Hetkel pole ühtegi meeldetuletust sisse lülitatud.\n\nVali allpool, millest soovid DM-i saada.",
"footer": "Bot DM-ib sulle, kui valitud käsk on taas kasutamiseks valmis.",
}
# ---------------------------------------------------------------------------
# /send UI strings
# ---------------------------------------------------------------------------
SEND_UI: dict[str, str] = {
"sent": "✅ Sõnum saadetud kanalisse {channel}!",
"forbidden": "❌ Mul pole õigust kanalisse {channel} kirjutada.",
}
# ---------------------------------------------------------------------------
# /patchnotes UI strings
# ---------------------------------------------------------------------------
PATCHNOTES_UI: dict[str, str] = {
"title": "📝 Muudatuste logi — {version}",
"footer": "Versioon {idx}/{total}",
"btn_newer": "◀ Uuem",
"btn_older": "Vanem ▶",
"select_placeholder": "Vali versioon…",
"empty_file": " Muudatuste logi on hetkel tühi.",
"empty_version": "_(selle versiooni kohta märkmeid pole)_",
}
# ---------------------------------------------------------------------------
# /status UI
# ---------------------------------------------------------------------------
STATUS_UI: dict[str, str] = {
"title": "🖥️ Boti olek",
"uptime_field": "🕐 Uptime",
"uptime_val": "{hours}t {minutes}m {seconds}s",
"latency_field": "📡 Latency",
"latency_val": "{ms} ms",
"ram_field": "🧠 RAM (RSS)",
"ram_val": "{mb} MB",
"cpu_field": "⚙️ CPU",
"cpu_val": "{percent}%",
"tasks_field": "🔄 Async tasks",
"eco_players_field": "👤 Eco players",
"members_cache_field": "📋 Liikmed (cache)",
"supply_field": "💰 Rahavaru",
"supply_val": "Kokku {total}\nMängijatel {players}\nKassas {house} ({house_pct}%)",
"log_files_field": "📂 Log files",
"log_line": "`{name}` - {size_kb} KB",
"none": "-",
}