From ad3ff073e0d5ab9fd09c629f5a7b570dc22a0bb4 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 20:19:56 +0100 Subject: [PATCH 01/11] Add portals documentation --- content/docs/portals/index.mdx | 7 +++++++ content/docs/portals/meta.json | 19 +++++++++++++++++++ src/app/(home)/page.tsx | 31 +++++++++++++++++++------------ 3 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 content/docs/portals/index.mdx create mode 100644 content/docs/portals/meta.json diff --git a/content/docs/portals/index.mdx b/content/docs/portals/index.mdx new file mode 100644 index 0000000..a633baf --- /dev/null +++ b/content/docs/portals/index.mdx @@ -0,0 +1,7 @@ +--- +title: Overview +description: Create and manage custom portals +icon: BookMarked +--- + +Coming Soon! \ No newline at end of file diff --git a/content/docs/portals/meta.json b/content/docs/portals/meta.json new file mode 100644 index 0000000..1848d47 --- /dev/null +++ b/content/docs/portals/meta.json @@ -0,0 +1,19 @@ +{ + "root": true, + "title": "Portals", + "description": "Create and manage custom portals", + "icon": "BookMarked", + "pages": [ + "---Links---", + "external:[Github][GitHub](https://github.com/TheNextLvl-net/portals)", + "external:[Download][Download](https://modrinth.com/project/R2dgUCYq#download)", + "external:[ChartLine][Metrics](https://bstats.org/plugin/bukkit/TheNextLvl%20Portals/27514)", + "external:[BookDown][Repository](https://repo.thenextlvl.net/#/releases/net/thenextlvl/portals)", + "---Introduction---", + "index", + "---Guide---", + "---For Developers---", + "api/repository", + "api/index" + ] +} diff --git a/src/app/(home)/page.tsx b/src/app/(home)/page.tsx index 3976e51..473e5e4 100644 --- a/src/app/(home)/page.tsx +++ b/src/app/(home)/page.tsx @@ -1,20 +1,21 @@ import { Card } from "fumadocs-ui/components/card" +import type { LucideIcon } from "lucide-react" import { + Archive, + BrickWall, + Brush, Command, Globe, + Group, + Landmark, + Shell, Shield, - User, - Brush, + ShieldAlert, TextAlignStart, + User, Video, - Archive, - Landmark, Wrench, - Group, - BrickWall, - ShieldAlert, } from "lucide-react" -import type { LucideIcon } from "lucide-react" interface CardData { title: string @@ -40,15 +41,21 @@ const featuredCards: CardData[] = [ className: "h-48 group", }, { - title: "Characters", - icon: User, - description: "A modern, fully featured npc plugin for paper servers", - href: "docs/characters", + title: "Portals", + icon: Shell, + description: "Create custom portals to travel between your worlds and servers", + href: "docs/portals", className: "h-48 group", }, ] const otherCards: CardData[] = [ + { + title: "Characters", + icon: User, + description: "A modern, fully featured npc plugin for paper servers", + href: "docs/characters", + }, { title: "Tweaks", icon: Wrench, From 01e4b676c09b7e58e7bd1dc508ee59783cc7ebe8 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 21:34:33 +0100 Subject: [PATCH 02/11] docs: add detailed Portals plugin documentation --- content/docs/portals/index.mdx | 144 ++++++++++++++++++++++++++++++++- 1 file changed, 143 insertions(+), 1 deletion(-) diff --git a/content/docs/portals/index.mdx b/content/docs/portals/index.mdx index a633baf..849a4fa 100644 --- a/content/docs/portals/index.mdx +++ b/content/docs/portals/index.mdx @@ -4,4 +4,146 @@ description: Create and manage custom portals icon: BookMarked --- -Coming Soon! \ No newline at end of file +# Portals + +Portals is a powerful Minecraft server plugin for **Folia** and **Paper** +that allows you to create custom portals with advanced functionality. +Create portals that teleport players across worlds, +link to other portals, transfer players to different servers, or execute commands. + +## Features + +### Portal Actions + +- **Linked Portals**: Create bidirectional or one-way portals that connect to each other +- **Coordinate Teleports**: Teleport players to specific coordinates across worlds +- **Random Teleports**: Teleport players randomly within defined bounds or radius +- **Server Transfers**: Transfer players to external servers (hostname + port) +- **Network Connects**: Connect to servers within your BungeeCord/Velocity network +- **Command Execution**: Run commands as the player or console when entering a portal + +### Access Control + +- **Entry Permissions**: Restrict portal access with custom permissions +- **Entry Fees**: Charge players using **ServiceIO** or **Vault** economy integration +- **Cooldowns**: Set cooldown periods between portal uses + +### Portal Creation + +- **WorldEdit Integration**: Use WorldEdit selections for easy portal creation +- **Manual Bounds**: Define portal regions with coordinate arguments +- **Flexible Regions**: Create portals of any shape and size + +## Quick Start + +### Basic Usage + +The main command of Portals is `/portal`, +and requires the permission `portals.command.`: + +``` +# Create a portal using WorldEdit selection +/portal create spawn-portal + +# Set the portal to teleport to spawn +/portal action spawn-portal teleport minecraft:world 0 64 0 0 0 + +# Add a cooldown of 30 seconds +/portal cooldown spawn-portal 30s + +# Set an entry fee of 100 +/portal cost spawn-portal 100 + +# List all portals +/portal list +``` + +### Common Scenarios + +#### Linked Portals + +Create two portals that link to each other: +``` +# Create first portal +/portal create portal-a + +# Create second portal +/portal create portal-b + +# Link portal-a to portal-b +/portal action portal-a teleport-portal portal-b + +# Link portal-b to portal-a (for bidirectional) +/portal action portal-b teleport-portal portal-a +``` + +#### Random Teleport Portal + +Create a portal that teleports players randomly: +``` +# Create the portal +/portal create random-portal + +# Set random teleport with radius of 1000 blocks around 0, 64, 0 with a 100 block height limit +/portal action random-portal teleport-random minecraft:overworld 0 64 0 1000 100 +``` + +#### Server Transfer Portal + +Connect players to another server in your network: +``` +# Create the portal +/portal create lobby-portal + +# Connect to lobby server (BungeeCord/Velocity) +/portal action lobby-portal connect lobby +``` + +#### Premium Portal with Fee + +Create a portal with entry requirements: +``` +# Create the portal +/portal create vip-portal + +# Set entry fee +/portal cost vip-portal 500 + +# Set entry permission +/portal permission vip-portal server.vip + +# Set cooldown (60 seconds) +/portal cooldown vip-portal 60s +``` + +## Permission System + +### Command Permissions + +Portals uses fine-grained permissions following the pattern: +- `portals.command.create` - Create portals +- `portals.command.delete` - Delete portals +- `portals.command.list` - List portals +- `portals.command.action` - Set portal actions +- `portals.command.redefine` - Redefine portal bounds +- `portals.command.cost` - Set entry fees +- `portals.command.cooldown` - Set cooldowns +- `portals.command.teleport` - Teleport to portals +- `portals.command.permission` - Set entry permissions + +### Entry Permissions + +Portal entry permissions are custom and set per-portal using `/portal permission`. + +## WorldEdit Integration + +Portals optionally integrates with WorldEdit for easier portal creation: + +1. Use `//wand` to get the WorldEdit selection tool +2. Select the portal region by clicking two corners +3. Run `/portal create ` to create the portal with your selection + +Alternatively, you can specify bounds manually: +``` +/portal create my-portal x1 y1 z1 x2 y2 z2 minecraft:overworld +``` From 871837e39cec9f2fb6ce0b639ebf0344e8642a86 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 21:47:19 +0100 Subject: [PATCH 03/11] docs: add creating portals documentation --- content/docs/portals/creating-portals.mdx | 76 +++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 content/docs/portals/creating-portals.mdx diff --git a/content/docs/portals/creating-portals.mdx b/content/docs/portals/creating-portals.mdx new file mode 100644 index 0000000..7dd2461 --- /dev/null +++ b/content/docs/portals/creating-portals.mdx @@ -0,0 +1,76 @@ +--- +title: Creating Portals +description: Create and define portal regions +--- + +# Creating Portals + +Creating portals is the first step in building your portal network. +You can create portals using WorldEdit selections or by manually specifying coordinates. + +## Commands + +### Create a Portal + +Usage: `/portal create [] []` +Creates a new portal with the specified name and region. + +**With WorldEdit Selection:** +``` +# Get WorldEdit wand +//wand + +# Select two corners of the portal region +# Left-click first corner, right-click second corner + +# Create the portal +/portal create my-portal +``` + +**With Manual Coordinates:** +``` +# Create portal with specific bounds +/portal create spawn-portal 0 64 0 10 74 10 minecraft:overworld + +# Create large portal area +/portal create hub-portal -5 60 -5 5 70 5 farmworld:overworld + +# Create vertical portal +/portal create wall-portal 100 64 100 105 74 100 +``` + + + If you have a WorldEdit selection active, you don't need to specify coordinates. + If you don't have a selection, coordinates are required. + + +### Redefine Portal Bounds + +Usage: `/portal redefine [] []` +Changes the physical region of an existing portal. + +**With WorldEdit Selection:** +``` +# Select new portal region with WorldEdit +//wand + +# Redefine the portal +/portal redefine my-portal +``` + +**With Manual Coordinates:** +``` +# Redefine portal with new bounds +/portal redefine spawn-portal 0 64 0 15 74 15 minecraft:overworld + +# Make portal larger +/portal redefine hub-portal -10 60 -10 10 70 10 farmworld:overworld + +# Adjust portal position +/portal redefine wall-portal 200 64 200 205 74 200 +``` + + + WorldEdit is optional but recommended for easier portal creation. + You can always use manual coordinates if WorldEdit is not available. + From f0ce54f0f212c8c8bb362913332d98bbe776b38c Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:16:38 +0100 Subject: [PATCH 04/11] docs: add portal actions documentation --- content/docs/portals/portal-actions.mdx | 169 ++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 content/docs/portals/portal-actions.mdx diff --git a/content/docs/portals/portal-actions.mdx b/content/docs/portals/portal-actions.mdx new file mode 100644 index 0000000..2bff41a --- /dev/null +++ b/content/docs/portals/portal-actions.mdx @@ -0,0 +1,169 @@ +--- +title: Portal Actions +description: Configure what happens when players enter portals +--- + +# Portal Actions + +Portal actions define what happens when a player enters a portal. +You can configure portals to teleport players, transfer them to other servers, execute commands, or link to other portals. + +## Command + +### Set Portal Action + +Set the action that occurs when a player enters the portal. +Usage: `/portal action ...` + +## Available Actions + +### Teleport to Coordinates + +Teleports to specific coordinates in a world. +Usage: `/portal action teleport [] []` + +**Examples:** +``` +# Teleport to spawn coordinates +/portal action spawn-portal teleport minecraft:overworld + +# Teleport with specific location +/portal action spawn-portal teleport minecraft:overworld 0 64 0 + +# Teleport with rotation +/portal action nether-portal teleport minecraft:the_nether 100 64 100 90 0 +``` + +### Link to Another Portal + +Teleports to another portal's location. +Usage: `/portal action teleport-portal ` + +**Examples:** +``` +# Link portal-a to portal-b +/portal action portal-a teleport-portal portal-b + +# Create bidirectional link +/portal action portal-a teleport-portal portal-b +/portal action portal-b teleport-portal portal-a + +# Create one-way portal network +/portal action hub teleport-portal zone-1 +/portal action zone-1 teleport-portal zone-2 +/portal action zone-2 teleport-portal hub +``` + +### Random Teleport + +Teleports players to a random safe location within specified bounds or radius. +Usage: `/portal action teleport-random (|
) ...` + +**Examples:** +``` +# Random teleport within 1000 block radius around 0, 64, 0 with a 100 block height limit +/portal action random-portal teleport-random minecraft:overworld 0 64 0 1000 100 + +# Random teleport with custom bounds +/portal action random-portal teleport-random minecraft:overworld -1000 -64 -1000 1000 319 1000 +``` + + + Random teleport locations are always evaluated for safety. + Players will only be teleported to safe locations (solid ground, no lava, etc.). + + +### Connect to Network Server + +Connects players to another server in your BungeeCord/Velocity network. +Usage: `/portal action connect ` + +**Examples:** +``` +# Connect to lobby server +/portal action lobby-portal connect lobby + +# Connect to survival server +/portal action survival-portal connect survival + +# Connect to minigames server +/portal action games-portal connect minigames +``` + + + This action requires a BungeeCord or Velocity proxy setup. + The server name must match the server name configured in your proxy. + + +### Transfer to External Server + +Transfers players to a server outside your proxy network using hostname and port. +Usage: `/portal action transfer []` + +**Examples:** +``` +# Transfer to external server +/portal action transfer-portal transfer play.example.com + +# Transfer to local test server on port 25566 +/portal action test-portal transfer localhost 25566 + +# Transfer to partner server +/portal action partner-portal transfer partner.example.net +``` + + + This action transfers players to servers outside your proxy network. + In order for this to work, the remote server must be configured to accept transfers. + + +### Run Command as Player + +Executes a command as the player who enters the portal. +Usage: `/portal action run-command ` + +**Examples:** +``` +# Join gungame +/portal action gungame-portal run-command gungame join + +# Join a bedwars game +/portal action bedwars-portal run-command bedwars join duos +``` + + + The command is executed as the player. + The player must have permission to run the command. + + +### Run Console Command + +Executes a command from the console when a player enters the portal. +Usage: `/portal action run-console-command ` + +**Examples:** +``` +# Give player an item from console +/portal action reward-portal run-console-command give diamond 1 + +# Broadcast a message +/portal action event-portal run-console-command broadcast entered the arena! + +# Add player to a team +/portal action team-portal run-console-command team join red +``` + + + Use `` as a placeholder for the player's name. + + +### Remove Action + +Removes the current action from a portal, making it inactive. +Usage: `/portal action remove` + +**Examples:** +``` +# Remove action from portal +/portal action spawn-portal remove +``` From da7658f0a03f23365b7604ec1c2a9ca77908cf7a Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:22:30 +0100 Subject: [PATCH 05/11] docs: add managing portals overview and commands --- content/docs/portals/managing-portals.mdx | 64 +++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 content/docs/portals/managing-portals.mdx diff --git a/content/docs/portals/managing-portals.mdx b/content/docs/portals/managing-portals.mdx new file mode 100644 index 0000000..1dbbd4d --- /dev/null +++ b/content/docs/portals/managing-portals.mdx @@ -0,0 +1,64 @@ +--- +title: Managing Portals +description: List, delete, and teleport to portals +--- + +# Managing Portals + +Portal management commands allow you to view, delete, and navigate between your portals. +These commands help you maintain and organize your portal network. + +## Commands + +### List Portals + +Displays a list of all portals on the server. +Usage: `/portal list` + + + You can click on the portal names in the output to teleport to them. + + +### Delete Portal + +Permanently removes a portal from the server. +Usage: `/portal delete ` + +**Examples:** +``` +# Delete a specific portal +/portal delete old-portal + +# Remove unused portal +/portal delete test-portal + +# Clean up temporary portal +/portal delete event-portal +``` + + + Deleting a portal is permanent and cannot be undone. + All portal settings (action, cost, cooldown, permission) will be lost. + + +### Teleport to Portal + +Teleports you to the specified portal's location. +Usage: `/portal teleport ` + +**Examples:** +``` +# Teleport to a portal +/portal teleport spawn-portal + +# Quick navigation to portal +/portal teleport hub + +# Check portal location +/portal teleport zone-1 +``` + + + This command is for administrators to quickly navigate to portals. + It does not trigger the portal's action. + From db358e839707ee221273046eb9774614953f6c70 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:45:57 +0100 Subject: [PATCH 06/11] docs: add access control portal documentation --- content/docs/portals/access-control.mdx | 100 ++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 content/docs/portals/access-control.mdx diff --git a/content/docs/portals/access-control.mdx b/content/docs/portals/access-control.mdx new file mode 100644 index 0000000..d529268 --- /dev/null +++ b/content/docs/portals/access-control.mdx @@ -0,0 +1,100 @@ +--- +title: Access Control +description: Manage portal permissions, costs, and cooldowns +--- + +# Access Control + +Access control allows you to restrict portal usage with permissions, entry fees, and cooldowns. +Create VIP portals, premium teleports, or prevent portal spam. + +## Commands + +### Set Entry Permission + +Sets a permission requirement for using the portal. +Usage: `/portal permission ` + +**Examples:** +``` +# Require VIP permission +/portal permission vip-portal server.vip + +# Require admin permission +/portal permission admin-portal server.admin + +# Require custom permission +/portal permission premium-portal portals.premium + +# Require donor permission +/portal permission donor-portal server.donor +``` + + + Players without the required permission will be denied entry. + + +### Set Entry Cost + +Sets an entry fee that players must pay to use the portal. +Usage: `/portal cost ` + +**Examples:** +``` +# Set cost of 100 +/portal cost spawn-portal 100 + +# Set cost of 500 +/portal cost vip-portal 500 + +# Set cost of 1000 +/portal cost premium-portal 1000 + +# Remove cost +/portal cost free-portal 0 +``` + + + Entry costs require Vault and an economy plugin to be installed. + Economy must be enabled in the configuration file. + + +### Set Cooldown + +Sets a cooldown period between portal uses for each player. +Usage: `/portal cooldown ` + +**Examples:** +``` +# Set 30 second cooldown +/portal cooldown spawn-portal 30s + +# Set 60 second cooldown +/portal cooldown random-portal 60s + +# Set 5 minute cooldown +/portal cooldown premium-portal 300s + +# Remove cooldown +/portal cooldown instant-portal 0 +``` + + + Cooldowns are per-player and prevent portal spam. + + +## Entry Denial + +When a player is denied entry to a portal, they will: + +1. Be pushed back from the portal (if knockback is enabled) +2. Not be charged or put on cooldown + +Players can be denied for: +- Missing required permission +- Portal still on cooldown from previous use +- Insufficient funds for entry fee + + + Knockback speed and whether knockback is enabled can be configured in the config file. + From f81a3191cd50a6d3dafcb989816c18a4d2365964 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:51:42 +0100 Subject: [PATCH 07/11] docs: add portal permissions documentation --- content/docs/portals/permissions.mdx | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 content/docs/portals/permissions.mdx diff --git a/content/docs/portals/permissions.mdx b/content/docs/portals/permissions.mdx new file mode 100644 index 0000000..d90d867 --- /dev/null +++ b/content/docs/portals/permissions.mdx @@ -0,0 +1,54 @@ +--- +title: Permissions +description: Portal command and entry permissions +--- + +# Permissions + +Portals uses a fine-grained permission system for command access and portal entry control. +Command permissions follow a consistent pattern, while entry permissions are custom per-portal. + +## Command Permissions + +Command permissions control who can use portal management commands. +All command permissions follow the pattern: `portals.command.` + +### Permission List + +| Permission | Command | Description | +|------------------------------|----------------------|-------------------------| +| `portals.command.create` | `/portal create` | Create new portals | +| `portals.command.delete` | `/portal delete` | Delete existing portals | +| `portals.command.list` | `/portal list` | List all portals | +| `portals.command.action` | `/portal action` | Set portal actions | +| `portals.command.redefine` | `/portal redefine` | Redefine portal bounds | +| `portals.command.cost` | `/portal cost` | Set portal entry fees | +| `portals.command.cooldown` | `/portal cooldown` | Set portal cooldowns | +| `portals.command.teleport` | `/portal teleport` | Teleport to portals | +| `portals.command.permission` | `/portal permission` | Set entry permissions | + + + The `portals.command.action` permission grants access to all action types. + There are no separate permissions for individual actions (teleport, connect, transfer, etc.). + + +## Entry Permissions + +Entry permissions are custom permissions set per-portal using `/portal permission`. +These permissions control who can use specific portals. + +### Setting Entry Permissions + +``` +# Set custom entry permission +/portal permission vip-portal server.vip + +# Set admin-only portal +/portal permission admin-portal server.admin + +# Set donor portal +/portal permission donor-portal server.donor +``` + +Entry permissions can be any permission string you choose. +Use your permission plugin (like LuckPerms) to grant these permissions to players or groups. From c4ce4936a18e8d5e58ede632b5a32fc5d8a1e523 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:53:25 +0100 Subject: [PATCH 08/11] docs: update portals meta with new topics --- content/docs/portals/meta.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/docs/portals/meta.json b/content/docs/portals/meta.json index 1848d47..2651aa3 100644 --- a/content/docs/portals/meta.json +++ b/content/docs/portals/meta.json @@ -12,6 +12,11 @@ "---Introduction---", "index", "---Guide---", + "creating-portals", + "portal-actions", + "managing-portals", + "access-control", + "permissions", "---For Developers---", "api/repository", "api/index" From 7552e1bb328550e6ef8f3a478324481733b7bd5a Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:54:32 +0100 Subject: [PATCH 09/11] docs: remove outdated entry permissions section --- content/docs/portals/permissions.mdx | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/content/docs/portals/permissions.mdx b/content/docs/portals/permissions.mdx index d90d867..cf74881 100644 --- a/content/docs/portals/permissions.mdx +++ b/content/docs/portals/permissions.mdx @@ -31,24 +31,3 @@ All command permissions follow the pattern: `portals.command.` The `portals.command.action` permission grants access to all action types. There are no separate permissions for individual actions (teleport, connect, transfer, etc.). - -## Entry Permissions - -Entry permissions are custom permissions set per-portal using `/portal permission`. -These permissions control who can use specific portals. - -### Setting Entry Permissions - -``` -# Set custom entry permission -/portal permission vip-portal server.vip - -# Set admin-only portal -/portal permission admin-portal server.admin - -# Set donor portal -/portal permission donor-portal server.donor -``` - -Entry permissions can be any permission string you choose. -Use your permission plugin (like LuckPerms) to grant these permissions to players or groups. From 423994ba0096abb4e6240ce94b87efe0ad1d52fb Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:55:26 +0100 Subject: [PATCH 10/11] docs: fix spawn-portal teleport target to overworld --- content/docs/portals/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/portals/index.mdx b/content/docs/portals/index.mdx index 849a4fa..e47f585 100644 --- a/content/docs/portals/index.mdx +++ b/content/docs/portals/index.mdx @@ -46,7 +46,7 @@ and requires the permission `portals.command.`: /portal create spawn-portal # Set the portal to teleport to spawn -/portal action spawn-portal teleport minecraft:world 0 64 0 0 0 +/portal action spawn-portal teleport minecraft:overworld 0 64 0 0 0 # Add a cooldown of 30 seconds /portal cooldown spawn-portal 30s From a4eca57bbe679324fcb577f50c566220f809e3ae Mon Sep 17 00:00:00 2001 From: david Date: Sat, 8 Nov 2025 22:56:22 +0100 Subject: [PATCH 11/11] docs: update bounds example to use 'world' instead of 'minecraft:overworld' --- content/docs/portals/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/portals/index.mdx b/content/docs/portals/index.mdx index e47f585..e649394 100644 --- a/content/docs/portals/index.mdx +++ b/content/docs/portals/index.mdx @@ -145,5 +145,5 @@ Portals optionally integrates with WorldEdit for easier portal creation: Alternatively, you can specify bounds manually: ``` -/portal create my-portal x1 y1 z1 x2 y2 z2 minecraft:overworld +/portal create my-portal x1 y1 z1 x2 y2 z2 world ```