Version 2.0.0
Major refactoring to an installable node package.
There are several breaking changes compared to last release - see changelog.
Changelog
Server:
-
Breaking change: No self-creation anymore
- App has to be included as package
- Must be created by factory method
- Config has to be passed to factory method
- Data source has to be passed to factory method
- Removed file for custom config
-
Breaking change: Changed database interface
- Split database abstraction into classes for data source API and database adapters
- Datasource classes:
AbstractDatasource
,DefaultDatasource
- Database adapter classes:
AbstractDatabaseHandler
,MysqlDatabaseHandler
- Datasource classes:
- Expecting new props
gameTitle
andgameTag
in result of methodgetClientIdentityData
- Renamed database method
getSingleBotChannels
togetGameBoundBotChannels
. - Added new method
getGameStatuses
to read status for multiple games (used for bot commands) - Removed methods
getGameStatus
andgetGameRound
- Replaced config setting
SQL_DATABASE_PREFIX_GAME
in favor ofSQL_DATABASE_GAME
- Split database abstraction into classes for data source API and database adapters
-
Breaking changes for usage of game bot:
- Changed command "galaxy?" to "game?"
- Removed command "round?", changed commands "game?" and "status?" to print all game info
-
Breaking change: Webserver delivers own files by new request URLs
- Changed default webserver root from process working dir to package root dir
- Changed request URL for javascripts from "/js/..." to "/chat/webclient/..."
- Added request URL for webclient.js ("/chat/webclient.js")
- Removed partial files of webclient (formerly URL "/js/chat_controller.js", etc.)
-
Mono-bot mode
- The mono-bot mode handles all game instances by exact one IRC bot
- (Instead of an IRC bot created per game instance)
- In-game chat users can be distinguished by added game info
-
Various new config settings:
MAX_BOTS
can be used to configure mono-botWEB_SERVER_STATICS_DELIVERY_DIR
for own filesWEB_SERVER_CLIENT_DELIVERY_DIR
for files of the webclient (especially thewebclient.js
)BOT_GAME_LABEL
for the common name of a gameSQL_DATABASE_GAME
in replace forSQL_DATABASE_PREFIX_GAME
- etc.
Webclient:
-
Breaking change: Reorganized webclient sources and requirements
webclient.js
now contains all sources, including thirdparty libraries- Partial files of webclient are not provided any longer (
chat_controller.js
, etc.) - Internal classes are hidden from the global space (except the main class)
-
Breaking change: Renamed global main class
ChatController
toGatewayChat
-
Breaking change: Target page must not contain the client's initial DOM / partial HTML anymore
- The webclient builds up the initial DOM by itself
- The DOM is appended to an existing HTML node, by default the body node
- Introduced new option
parentElement
to define the target HTML node
-
Breaking change: Referencing and styling HTML nodes by CSS classes instead of IDs
#tabsystem
became.tabsystem
#tabPageServer
became.tabPage.server
#tabPage_<channel>
became[data-id=tabPage_<channel>]
#channelCreateForm
became.channelCreateForm
#channelNameInput
became.channelNameInput
#channelPasswordInput
became.channelPasswordInput
#channelFlagPublic
became.channelFlagPublic
#channelFlagIRC
became.channelFlagIRC
#channelCreateSubmitButton
became.channelCreateSubmitButton
-
Breaking change: Further changes on CSS
- Add
.line
for messages having multiple lines - Renamed
.tabsystemHeaders [data-id]
to.tabsystemHeaders [data-tab]
- Add