Skip to content

About

ArdaCraft Integration of Huskhomes

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

HuskHomes - ArdaCraft Fork (Fabric 1.20.1)

This is the ArdaCraft server's fork of HuskHomes by William278, targeting Fabric 1.20.1.

For all standard features - homes, warps, teleport requests, cross-server teleportation, configuration, permissions, and more - refer to the upstream documentation:

https://william278.net/docs/huskhomes

This README documents only the ArdaCraft-specific additions on top of the upstream codebase.


Fork-specific features

1. Server Linking (master/slave warp replication)

Servers can be linked in a master/slave relationship. When a player uses /warp, they are automatically redirected to their preferred server's copy of that warp rather than always landing on the master server.

Concept:

  • A master server holds the canonical warp definition.
  • Slave servers are mirrors of the master; players can be sent there instead.
  • Relationships are stored in the huskhomes_server_links database table and managed at runtime via admin commands.

Configuring in config.yml (static defaults, overridden by DB at runtime):

cross_server:
  server_linking:
    enabled: true
    link_map:
      survival-1:
        - survival-2

Runtime admin commands (see Admin Commands):

  • /huskhomes linkserver <master> <slave> - add a link
  • /huskhomes unlinkserver <master> <slave> - remove a link

2. Warp Permissions

Individual warps can be locked behind a custom permission node, independently of HuskHomes' built-in permission_restrict_warps setting. The two systems stack: a player must pass both checks.

Admin commands:

  • /huskhomes lockwarp <warp> <permission.node> - require permission.node to use <warp>
  • /huskhomes unlockwarp <warp> - remove the permission restriction

Restrictions are stored in the huskhomes_warp_permissions table.


3. Server Permissions

All warps on a given server can be gated behind a single permission node. This check is applied in addition to per-warp permissions.

Admin commands:

  • /huskhomes lockserver <server> <permission.node> - require permission.node to warp to any warp on <server>
  • /huskhomes unlockserver <server> - remove the restriction

Restrictions are stored in the huskhomes_server_permissions table.


4. User Preferred Server

Players (or admins on their behalf) can set a preferred server for each master server in the linking system. When the player subsequently uses /warp, they are redirected to their preferred server's copy of the warp automatically.

Command:

/huskhomes setpreferredserver <master-server> <preferred-server> [player]
  • Omit [player] to set your own preference.
  • Include [player] (operator only) to set it for another player.
  • <preferred-server> must be the master server itself or one of its linked slaves.

Preferences are stored in the huskhomes_user_preferences table.

Permission-based default preferred server

If a player has no explicit preference stored, a default can be granted via permission node:

huskhomes.linkedserver.<master-server>.preferreddefault.<preferred-server>

Example: granting huskhomes.linkedserver.survival-1.preferreddefault.survival-2 to a group will route those players to survival-2 whenever they warp to a warp on survival-1.


5. Extended /warp syntax

An optional server argument is accepted directly in the warp command:

/warp <name> [server]

When [server] is supplied the player is teleported to that server's copy of the warp (subject to server permission checks). This is useful for admins who need to reach a specific server copy regardless of personal preferences.


6. Command block / /execute compatibility fix

Vanilla Minecraft's /execute ... run <command> passes the full command chain as input to Brigadier, which caused HuskHomes commands to receive the entire /execute string as their argument list. This fork fixes that in FabricCommand by scanning the input for the command name and slicing only the arguments that follow it, so commands work correctly from command blocks and execute chains.


Admin commands

All commands below require operator level (permission level 3) or the corresponding huskhomes.<subcommand> permission node.

Command Syntax Description
linkserver /huskhomes linkserver <master> <slave> Link a slave server to a master server
unlinkserver /huskhomes unlinkserver <master> <slave> Remove a master→slave server link
lockwarp /huskhomes lockwarp <warp> <permission> Require a permission to use a warp
unlockwarp /huskhomes unlockwarp <warp> Remove a warp's permission requirement
lockserver /huskhomes lockserver <server> <permission> Require a permission for all warps on a server
unlockserver /huskhomes unlockserver <server> Remove a server's permission requirement
setpreferredserver /huskhomes setpreferredserver <master> <preferred> [player] Set a player's preferred server for a master

Fork-specific permission nodes

Node Description
huskhomes.linkedserver.<master>.preferreddefault.<server> Permission-based default preferred server for <master>

All other permission nodes are unchanged from upstream - see Managing Access.


Building

Requires Java 17. Targets Fabric 1.20.1 (Fabric Loader 0.16.10).

./gradlew clean build

The built jar is output to fabric/build/libs/.


License

Licensed under the Apache Licence 2.0, the same as the upstream HuskHomes project.

Links


© William278, 2023. Licensed under the Apache-2.0 Licence.

About

ArdaCraft Integration of Huskhomes

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages