Giter VIP home page Giter VIP logo

grounds's Introduction

Bill Havanki @ Github

Welcome! This is my Github page. To find out more about me, take a look at my LinkedIn profile.

Highlighted repositories

  • 🏑 Grounds - a MUSH server written in Java
  • β™ŠοΈ Doppio - a Gemini server written in Java

Newest professional stuff

  • Serving as principal engineer for Segment's developer platform team πŸ—οΈ
  • Always learning more ☸️ Kubernetes

Personal links

grounds's People

Contributors

bhavanki avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

kazuyabr

grounds's Issues

Figure out listen patterns

PennMUSH objects can listen for ... commands? Utterances? Something, and then do something in response. Figure out how that could work here.

There is some attempt at this in the code, with sending messages to things, and other stuff, but it doesn't seem quite right.

Handle when players are disconnected

At the moment, players linger where they are after their actor leaves. Should they? Maybe they should go to some designated home instead, or some off-grid holding pen until they are in use.

Implement PAGE

Implement a PAGE command for sending a message to another player from afar.

Implement event calendar

Create a way for players to organize play sessions, special events, and other scheduled occurrences.

Set up autosave

Nothing is automatically saving off the state of the multiverse as the game runs. That's necessary so that GOD doesn't need to keep popping in to do so.

Build guest flow

Handle guest access. Where do they go? What can they do? How can they communicate with players?

Allow setting attributes from YAML files

SetAttrCommand can only read JSON files. When setting a script attribute, it's very annoying because JSON doesn't allow multiline strings. Enhance the command so that it can parse YAML, which allows multiline strings.

Add autocompletion for player arguments to commands

Basic command autocompletion was added in 07eedcb. Add completion for command arguments that represent players. This should work by looking through the players visible to the player issuing the command. That list should be generated by running a pseudo-command akin to LOOK, but just for getting that player list. So, this would be a command that is run in order to complete a different command.

Implement chat access controls

There are no rules for which channels a player may join or leave, but there should be, for things like wizard-only channels or channels restricted to distinct groups of players on a team or in a faction or what have you.

Join guests to chat

When a new guest logs in, they should be joined to a guest chat channel (or something configurable) so that other players do not need to be located at the guest home in order to interact with them.

Add more chat commands

There are some chat commands that still need to be implemented. Among them:

  • list the available chat channels
  • list what channels you are joined to
  • list the members of a channel (admin only?)

Open up some actor commands to wizards

All actor manipulation commands are restricted to GOD at the moment, but it makes sense for thaumaturges to be permitted to use some if them, if not all.

Implement DESTROY

Implement a command to destroy (delete) things and universes, anything that the BUILD command can build. Think about when destruction should cascade vs. should be blocked; what to do with things that were contents of a destroyed thing; etc.

Let actor control ANSI usage

Implement an actor preference system, whose first goal is to let an actor decide not to receive ANSI color codes from the server.

Finish help text

Write help text for the actor and role command sets, and make sure the help command can provide them.

Ignore SHUTDOWN in RunCommand

If RunCommand encounters SHUTDOWN as a command, it will dutifully request server shutdown. That's bad. Make it ignore it instead.

Replace security manager with modules

Right now, Grounds uses the Java security manager to try to prevent softcode (scripted commands) from unlimited access to the universe. Unfortunately, there are plans to deprecate and remove the security manager completely from the JDK.

https://openjdk.java.net/jeps/411

The alternative is probably to adopt Java Modules. This means that Grounds will be a module, and only export pieces of itself that softcode, or anything else, may access. That's not too bad.

The harder part is using dependencies in a modular way. Many dependencies have already adopted modules, but notably Apache Mina (SSH) hasn't.

Track actor IP addresses

Make the IP address for each connected actor available to wizards. This is the basis for other potential controls, including IP bans.

Add mute controls

Let a player mute another player. This may require adding sender information to messages that are passed around.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.