PlayerbotFactory calls Player::GiveLevel() in six places while randomising a
bot, and GiveLevel fires OnPlayerLevelChanged exactly as a real ding does. On
a Playerbots realm that means every bot re-roll past level 10/20/.../80 sends
a server-wide broadcast plus a raid warning and hands the bot gold and two
reward items. Turning off CongratsPerLevel.Enable does not help: the
reward-level announcements sit outside that gate.
Adds Congrats.SkipBots (default 1). The bot test is guarded by
#ifdef MOD_PLAYERBOTS, which the core defines for every module when
mod-playerbots is present, so a core built without it is unaffected.
Also adds the missing `override` on OnPlayerLogin. The signature already
matched the base, so behaviour is unchanged -- it just stops a future
signature change from silently detaching the hook.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019vTNrJGsprcjdjjjDJD5ZM
I aligned the code, and actually, our communication is done through AI translation. I initially thought your mention of alignment referred to the unification of the level display function calls. Thank you for the reminder. I'm not a professional programmer and haven't received formal training, so I don't have good code alignment habits. Thanks again for your reminder!~
The software or game now supports user interface prompts in both Simplified Chinese and Traditional Chinese, making it more accessible to a wider range of Chinese-speaking users.
A correction has been made to the on-screen display of currency amounts. Specifically, where small amounts of currency were being shown, the unit was incorrectly displayed as "Gold." This has been corrected so that it now accurately displays "Copper," which is the appropriate unit for smaller denominations in games like World of Warcraft.
* feat. Move awards to database and enable races/classes
* feat. Allow multiple records in the table
* feat. Check that the values in the register are greater than zero