Skip to content

Conversation

@caelunshun
Copy link
Member

@caelunshun caelunshun commented May 2, 2020

Resolves #161.

Changes:

  • New task manager, used for scheduling async tasks.
  • New feather-server-commands crate implements all commands
  • Implement basic commands:
    • tp
    • gamemode

@caelunshun caelunshun added this to the 0.6 milestone May 2, 2020
@caelunshun caelunshun marked this pull request as draft May 2, 2020 19:32
@caelunshun caelunshun force-pushed the commands branch 2 times, most recently from 85dab53 to bc1bbbb Compare May 4, 2020 19:06
@caelunshun caelunshun modified the milestones: 0.6, 0.7 May 4, 2020
/tp: send PlayerPositionAndLook instead of EntityTeleport

Initial support for entity selectors

Implement tp

Rebase onto develop

fix

bump feather-server-commands to 0.6.0 to account for release of 0.6.0
caelunshun added a commit that referenced this pull request May 11, 2020
Implement survival mode

This PR implements survival mode. Resolves #40.

#213 is blocked on this as we are developing the design we will use to approach gamemodes, and moreover, how we will implement gameplay features with regard to component architecture. The current approach is heavily based on data-oriented design. Rather than checking a player's gamemode in systems, there are a number of marker components—e.g. CanBreak, CanInstaBreak, CanTakeDamage, CanFly—which describe the capabilities of a player. These are inserted based on gamemode on player join, but the architecture allows for extensive customization of functionality through plugins.

Ideally, we would have a /gamemode command, but this is blocked on #209 being merged. I may merge it early, depending on how complete people deem it to be. Currently, the only way to affect a player's gamemode is through the default-gamemode setting in the config or manual editing of the player data files.

# Inventory handling
Only basic survival mode inventory handling (i.e. single clicks) has been implemented. I will hold off on the rest until our inventory indexing situation has improved.

# Block breaking
Survival mode digging has been implemented, for the most part. All which remains is to write down the harvest tools for all blocks (currently, only stone and dirt are in the list). This file is in definitions/data/tool.ron.
@caelunshun
Copy link
Member Author

caelunshun commented May 16, 2020

Here's the plan:

  • Implement /gamemode.
  • Merge this PR.
  • Create a tracking issue for assorted features:
    • auto-completion/suggestions
    • sending of the command graph to the client
    • entity selector arguments (e.g. @e[team=red])
    • every vanilla command (these will be nice good first issues )
    • Complete async support in lieutenant

@caelunshun caelunshun marked this pull request as ready for review May 18, 2020 20:18
@caelunshun caelunshun merged commit 1615989 into develop May 18, 2020
@caelunshun caelunshun deleted the commands branch May 18, 2020 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Command support

2 participants