Skip to content

Releases: bhavanki/grounds

v0.7.2

23 Apr 00:01
Compare
Choose a tag to compare

Notable new features:

  • A new lightweight markup language lets you customize text appearance in messages, sent either as a player or by a plugin.
  • The new ArrivalEvent and DepartureEvent events definitively indicate when players arrive to and depart from the game.

Notable improved features:

  • The chat plugin uses the new ArrivalEvent to trigger adding guests to the #guest channel.
  • The chat plugin now automatically removes guest players from #guest when they depart.
  • Help content for commands now lists permitted roles.

Fixed bugs:

  • Missing help text for MAIL MARK_READ is added.
  • The events plugin no longer allows guests to use it.

Other interesting changes:

  • If the current owner of a thing is missing, it cannot be claimed or abandoned.
  • You can now abandon a thing with no owner.

v0.7.1

12 Apr 01:50
Compare
Choose a tag to compare

Notable new features:

  • AnnounceCommand lets a wizard page all players at once.
  • Plugin commands may now list caller roles that are permitted for them.

Notable improved features:

  • The chat plugin supports channel visibility and joinability constraints by role and/or player name. The role constraints are possible through the new getRoles plugin API command.
  • The $chatadmin plugin command is now restricted to wizards.

Fixed bugs:

  • RunCommand now ignores SHUTDOWN.
  • ANSI coloring is now correctly disabled when an actor's "ansi" preference is not set to "true".

v0.7.0

04 Apr 23:32
Compare
Choose a tag to compare

Notable new features:

  • Scripts have been removed in favor of plugins. Instead of running softcode written in Groovy and stored within a universe, Grounds calls out to external plugins over JSON RPC written in any language.
  • In turn, plugins may call back to Grounds through a new API in order to gather information about the universe and make changes to it.
  • All of the former scripts - random, magicfiddle, chat, and events - are replaced with equivalent plugins. The first two are written in bash (!) and the last two in Go.
  • TeleportCommand and MoveCommand now emit enter and exit messages to other players when a player enters or exits a location.
  • Similarly, YoinkCommand now emits arrival and departure messages to other players when a player is yoinked (logs in, logs out, or is yoinked).

Notable improved features:

  • BuildCommand returns the ID of the thing it built.
  • The GOD player can build from any location, even nowhere.
  • RunCommand prints "true" or "false" for successful commands that return booleans.
  • InitCommand no longer replaces the original guest home of a new universe.
  • Code coverage tests no longer include code generated by protoc.

Fixed bugs:

  • Guest players are now built with a BUILD command instead of directly by Shell, which closes a hole allowing changes in the universe outside of commands.
  • ArgumentResolver now always checks the requested thing type when resolving "here".
  • Empty lines work correctly in RunCommand again.
  • LookCommand no longer reveals extensions to non-wizards.

Other interesting changes:

  • Grounds now requires Java 17 or higher.
  • GroundsSecurityManager is eliminated. It was only present to run with a Java security manager to try to protect Grounds from rogue scripts, but the danger is gone with plugins.
  • RecordOutput and TabularOutput now support creation in one step from maps. This is mostly in service of plugin support.
  • Jackson dependencies are updated to 2.12.6.
  • There are unit tests for more commands and more of command handling, and more of other stuff too.
  • A new Concierge class centralizes guest management.
  • Use of generics around the Command class is tightened up.

v0.6.0

19 Dec 15:16
Compare
Choose a tag to compare

Notable new features:

  • Telnet is now supported, either by itself or along with SSH.
  • Autocomplete for commands and subcommands is available.
  • Players are notified when another player arrives in their location by logging in, or departs their location by logging out.

Notable improved features:

  • With no arguments, the HELP command provides general guidance.
  • Line breaking is vastly improved. Most importantly, it now accounts for ANSI escape codes which otherwise can cause early line breaks. Trailing spaces are also trimmed more effectively.
  • The MUTE and UNMUTE commands may now refer to players that are not in your current location. Similarly, TELEPORT may now refer to other locations by name.
  • The WHO command reports the value of each player's "doing" attribute as a way of reporting status.

Fixed bugs:

  • Entering an empty line no longer produces an error.
  • Entering multiple exclamation points in a command no longer triggers "event expansion", which would insert previous command text. So awesome!!!
  • The WHO and ACTOR BOOT commands no longer fail if an actor is connected but has not yet selected a player.

Other interesting changes:

  • Messages can now emit horizontal rules which span the actor's terminal.
  • You can no longer MUTE yourself. Just say less.
  • The default host for the server is changed to 0.0.0.0.
  • The maximum action dice you can spend on a combat maneuver is increased to 4.
  • Unchecked exceptions thrown from commands are now logged and wrapped properly.
  • An attribute specification, like "count[integer]=4", can now use lowercase for the type.

v0.5.0

11 Oct 01:48
Compare
Choose a tag to compare

Notable new features:

  • Players can now engage in non-mortal combat! The new COMBAT command provides a system for teams of players, and optionally NPCs, to fight using skills and the luck of the dice.
  • Non-guest players can use the new softcoded $event command to manage scheduled events.
  • The new PAGE command lets you communicate with players from afar.
  • The new CHANGE_PASSWORD password lets you do just that, finally.
  • Actors can now set their timezone, which is applied to timestamps they see (like in events).

Notable improved features:

  • The initial player selection process after logging in is cleaned up and much easier.
  • Commands may now be input across multiple lines.
  • The ACTOR GET command is improved with much more actor information.
  • The WHO command is revamped with better output, and it now works for all players.
  • MAIL LIST and MAIL GET command output is improved.

Fixed bugs:

  • Some issues with rendering ANSI colors have been fixed.

Other interesting changes:

  • The LOOK command shows the ID of the player's current location, when IDs are being shown.

v0.4.0

14 Aug 01:45
Compare
Choose a tag to compare

Notable new features:

  • You've got mail! An in-game mail system is introduced through a new set of MAIL commands.
  • With no arguments, the MUTE command prints out the player's mute list.
  • A thing attribute may now have a "timestamp" type (with second resolution).
  • The new ACTOR LIST command lists all actors.
  • Grounds can now be run under a security manager, in order to restrict what softcode (Groovy scripts) is permitted to do. The run.sh script helps with starting Grounds with a security manager enabled. Operations that are restricted include:
    • working with the actor database
    • executing commands
    • working with and saving universes
  • New events are created for:
    • a player leaving a location
    • a player saying something
    • a player taking something
    • a player dropping something
    • a player getting yoinked from a location
    • a player getting yoinked to a location

Notable improved features:

  • Chat channels now have controls for who may see and join them.
  • The INSPECT command can now print just one attribute of a thing.
  • If a script run for a ScriptedCommand throws a CommandException, it is reported to the caller's console or shell, and not just logged.
  • Scripts can now log what they are doing.
  • A listener attribute on an extension may be made "localized", so that it only triggers for events in the extension's location.
  • Events now include a location. Retrieved event payloads automatically include player and place IDs.

Fixed bugs:

  • Line breaking no longer can occur within ANSI escape codes.
  • A guest's temporary player may now receive messages and has a correct home.

Other interesting changes:

  • The actor preference "showIds" controls whether thing IDs are presented in game. Usually you don't want to see them, but it can help wizards a lot.
  • Line breaking is generally improved.
  • Guests may now use the chat system, and are automatically joined to the #guest chat channel.

Internals:

  • Java 11 is the new minimum supported JVM version.
  • Several dependencies are updated, including Groovy and Apache SSH.

v0.3.0

22 Jul 21:25
Compare
Choose a tag to compare

Notable new features:

  • When a player leaves the game, they are "stowed" at the universe origin and
    so not present in the IC world. When a player returns, they are brought out
    to their home location.
  • New $chat and $chatadmin commands are available.
  • Help text for scripted commands is now supported.
  • Extensions support listener attributes, which are scripts run in response to
    events posted by commands. This enables automatic reactions to occurrences in
    the game.
  • Extensions are now considered players in the game, with their own roles; this
    avoids the need to create hidden "bot" players for that purpose.

Notable improved features:

  • Password authentication failures are logged in a way that is easily detected
    by fail2ban.
  • Saving a universe to its default file, as well as autosaves, now involves
    saving to a temporary file first, to guard against a save failure corrupting
    the save file.
  • Values for attributes that are themselves either attributes or lists of them
    may now be constructed from YAML strings as well as JSON strings.
  • The GOD player is now handled better when a new universe is loaded.
  • Failure to parse or run a script is now logged.

Fixed bugs:

  • The SWITCH_PLAYER command now works even when the two players involved are not
    in the same location.
  • Player auto-selection will no longer happen if the player is occupied.
  • In single user mode, the GOD player's actor is now set, so that messages
    appear.

Other interesting changes:

  • A universe is now required to have an origin, lost and found, and guest home.

v0.2.0

02 Jul 21:44
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

Notable new features:

  • Things can be destroyed.
  • Actors can store preferences. The only defined one right now, "ansi", controls whether color codes are emitted.
  • Players can have home places.
  • Actors may be kicked off of the server ("booted") and locked out.
  • Players may mute other players.
  • Players may describe things more easily.
  • Guest login is supported.
  • The server emits a welcome banner prior to user login.

Notable improved features:

  • Help text is complete and packaged in a bundle for internationalization.
  • Actor login times and IP addresses are tracked.
  • The state of the universe is now saved automatically at a configurable interval.
  • Actors may now log in multiple times at once.

Other interesting changes:

  • The multiverse model has been removed. The game now only uses one universe at a time.

Internals:

  • Unit tests are now using JUnit 5.
  • Jacoco code coverage is integrated.