Skip to content

Version 2.0.0

Compare
Choose a tag to compare
@Atanamo Atanamo released this 31 Aug 17:46
· 23 commits to master since this release

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
    • Expecting new props gameTitle and gameTag in result of method getClientIdentityData
    • Renamed database method getSingleBotChannels to getGameBoundBotChannels.
    • Added new method getGameStatuses to read status for multiple games (used for bot commands)
    • Removed methods getGameStatus and getGameRound
    • Replaced config setting SQL_DATABASE_PREFIX_GAME in favor of SQL_DATABASE_GAME
  • 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-bot
    • WEB_SERVER_STATICS_DELIVERY_DIR for own files
    • WEB_SERVER_CLIENT_DELIVERY_DIR for files of the webclient (especially the webclient.js)
    • BOT_GAME_LABEL for the common name of a game
    • SQL_DATABASE_GAME in replace for SQL_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 to GatewayChat

  • 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]