Skip to content

Minecraft: Register serverside portals, which can be built using configured blocks, items to light them up and execute a command when accessed. Works with vanilla clients.

License

Notifications You must be signed in to change notification settings

michiruf/MCServerPortals

Repository files navigation

Server Portals

Register serverside portals, which can be built using configured blocks, items to light them up and execute a command when accessed. Works with vanilla clients. If this mod is installed on the client as well, the portal frame can get displayed in different colors configured on the server.

NOTE v1.x - installing on a client does not work yet due to the fact, that debugging locally with non-authenticated clients is pretty insane. I'm currently working on a build script plugin to get local authentication to work, because you cannot debug like this. I'm not going to waste hours of copy pasting jars around, without a debugger attached.

Installation

To install this plugin fabric, fabric API and owo-lib is required.

This mod is available on modrinth with slug server-portals. The project source is available on github/michiruf with the latest readme here.

Internally this plugin is packed with kyrptonaught's customportalapi and Polymer to ensure vanilla compability.

Usage instructions

NOTE: The server must get restarted to load these changes!
So after every change of the portals, restart the server (unfortunately)!


List configured portals:

/serverportals list

Register a portal

/serverportals register NAME FRAME_BLOCK LIGHT_UP_ITEM COLOR COMMAND

For example: /serverportals register test minecraft:bone_block minecraft:ender_eye black "say hello" will register a portal, with bone blocks as frame, ender eyes as light up activation item to hold in hand while right-clicking and printing out hello from the user that steps into it.


Unregister a portal by its index

/serverportals unregister NAME

Example configuration file

The configuration is location in /config/server-portals.json5. Note that changing the configuration while the server is running, will be overwritten by commands that configure portals. LogLevel is currently unused.

{
  "logLevel": 0,
  "portals": [
    {
      "index": "say_hello_portal",
      "frameBlockId": "minecraft:bone_block",
      "lightWithItemId": "minecraft:ender_eye",
      "color": 0,
      "command": "say \"hello world\""
    },
    {
      "index": "tp_portal",
      "frameBlockId": "minecraft:gold_block",
      "lightWithItemId": "minecraft:ender_eye",
      "color": 5592575,
      "command": "tp @p 0 100 0"
    }
  ]
}

Usage together with ProxyCommands

ProxyCommands can be found here. To create a portal to another server use the command:

/serverportals register NAME BLOCK ITEM COLOR "proxycommand \"server SERVERNAME\""

For example:

/serverportals register server_creative minecraft:bone_block minecraft:ender_eye black "proxycommand \"server creative\""

Known error reports in server logs

The customportalapi will check if a portal without a dimension is registered and will print this on every launch of the server:

[xx:xx:xx] [main/INFO] (Minecraft) [STDOUT]: [customportalapi]ERROR: Dimension is null

The configured command will get executed nevertheless.

Changelog

Changelog per release cycle can be found here. This changelog contains information from one release to the next one.

License

MIT License

Further reading (for devs)

About

Minecraft: Register serverside portals, which can be built using configured blocks, items to light them up and execute a command when accessed. Works with vanilla clients.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages