# 1.9.0
-- Full release of v1.9.0 (#100) --

- IMPORTANT: New communication system (json) (See https://developers.strawberryfoundations.xyz/json-communication/introduction)

- NEW: Added ClientSender Object Class for more Python OOP & better Server message handling
- NEW: Added Stopwatch Class for counting how long you're in the queue
- NEW: Added maximal user feature (configurable) (#71)
- NEW: Added queue so users can wait until a "slot" is free (#75)
- NEW: Added some basic maximal user counts for online command, memberlist command, ... (#76)
- NEW: Added experimental user avatars for chat to chat bridges (e.g. Discord) & Strawberry ID (#66)
- NEW: Added server settings command (start with serversettings show command) (#77)
- NEW: Added queue command
- NEW: Added function to set max_users value to -1 for no max_users (#82)
- NEW: Added 2 new configuration variables to configure if admins/bots have to wait in the queue
- NEW: Added max. registered user feature (#87)
- NEW: Added additional alias for /nick remove (--> /nick reset)
- NEW: Added Pinging user should not be case-sensitive (#95)
- NEW: Replaced ipify global ip api with our own global ip api
- NEW: Removed case-sensitive username for dm command (#96)
- NEW: General removal of case-sensitive things (#97)

- MODULARITY: More Object Oriented Programming (Queue Class, Stopwatch Class, ...)
- MODULARITY: Moved open_blacklist() to src.functions
- MODULARITY: Added LogMessages Class for standardized log messages

- FIX: Fixed console logger prints static time instead of the real time (#63)
- FIX: Fixed a color formatting bug that occurrs when using htpf (client-side fix)
- FIX: Fixed deleting any kind of system message if it is the same as the message before (client-side fix)
- FIX: Fixed CRITICAL: Chat Hashtag Placeholder Format Colors wont be sent correctly (for more look issue description) (#81) 
- FIX: Fixed TypeError: a bytes-like object is required, not 'str' when using /dm (#83)
- FIX: Fixed UnboundLocalError: cannot access local variable 'has_dm_enabled' (#84)
- FIX: Fixed registration (check for used usernames is not working) (#85)
- FIX: Fixed IndexError: list index out of range when just typing / into chat (#72)
- FIX: Fixed table_query is not correctly according to the newest database (#91)
- FIX: Fixed cannot change nickname to an nickname with whitespaces (#90)
- FIX: Fixed when no user entry in database, you cannot register (#89)
- FIX: Fixed When using --regen-database; UnboundLocalError: cannot access local variable 'input' where it is not associated with a value (#92)
- FIX: Fixed stbexceptions::client_error (004) -> 'NoneType' object is not subscriptable (#93)
- FIX: Fixed database will not be correctly generated when starting server without user db (#88)
- FIX: Fully fixed When using Ctrl + C in client, the server will crash (BrokenPipe) (#1)
- FIX: Merged welcome message to one message to fix the extra line bug (Fixed #70)
- FIX: Some fixes to welcome message
- FIX: Added reset_color argument to replace_htpf to fix not resetting the color correctly
- FIX: Fixed strawberryIdLogin message sender

- SCAPI: Added function to use the old Strawberry Communication System (stbmv1)
- SCAPI: Added direct messages (#79) + exit command
- SCAPI: Added correct logic of logging messages if log_recv_msg is enabled + changed flag names when starting scapi bot
- SCAPI: Added a new way for scapi message events (replacement for old legacy "commands" method) (#64)
- SCAPI: Added a config do enable/disable check on capital letters in message for new on_message method (#78)
- SCAPI: Added real prefix recognition in scapi (#80)
- SCAPI: Moved event_registry and command_registry to __init__
- SCAPI: Fixed json & non-json message receiving
- SCAPI: Improved startup speed of scapi

- OPTIMIZATION: Many code optimizations
- OPTIMIZATION: Removed unnecessary imports
- OPTIMIZATION: Some general formatting fixes for src.functions

- UPDATE: Updated api protocol from http to https (scapi & server)
- UPDATE: Some major updates & fixes to news