Skip to content

Repository files navigation

ImmersivePortalsPaperized

An attempt at making Immersive Portals but completely server-side as a Paper plugin.

This Repo includes code from both NetherView and BetterPortals

Modrinth Description: # Immersive Portals Paperized A highly-optimized, server-side portal rendering and teleportation engine for PaperMC. Inspired by the Immersive Portals mod. I made a port for modern versions based of the code from NetherView and BetterPortals.

Plugin

A Minecraft plugin that allows nether portals to be seen through, it displays whats on the other side in real-time, and supports custom portal creation. Everything without any client modifications.

⚠️ REQUIRES PACKETEVENTS!

⚠️ Currently in Alpha, don't expect a stable plugin!

⚠️ Spigot support is not guaranteed as it uses extensive PaperAPI features!

Please open a Issue on github if you encounter any Bugs!

GithubIssues (for Bug-Reports, other Issues and Feedback)

Current Features:

  • See-through nether portals
  • Real-time portal rendering
  • Custom portal creation
  • Cross-server portal support
  • Portal effects and presets
  • Economy integration (Vault)
  • Selection wand
  • Folia compatible
  • GUI admin menu
  • TPS-aware rendering
  • Portal admin GUI
  • Anti-dupe protection
  • Multi-world support
  • Dimension blending
  • Light block system (1.18+)
  • Entity tracking and replication (mobs, items, and other entities are visible through portals)
  • Internationalization (25+ languages)

Future Features:

  • Entity/Player Pass through (walking through a portal's surface to teleport, without needing a vanilla portal block)
  • Making the Plugin more stable
  • Performance optimizations
  • Automatic update checks via Modrinth

How to use To build a custom portal: grab the wand (/bp wand), select your origin corners and run /bp setOrigin, select your destination corners and run /bp setDestination, then /bp linkPortals (or /bp linkExternalPortals for a cross-server portal).

Commands:

All commands are under /immersiveportalspaperized, which can also be shortened to /p or /bp.

  • /bp reload Reloads the plugin and the config file
  • /bp reconnect Reconnects to the proxy if the connection dropped
  • /bp wand Gives you the portal selection wand
  • /bp setOrigin Sets your current wand selection as the origin position
  • /bp setDestination Sets your current wand selection as the destination position
  • /bp linkPortals Links your origin and destination selections together
  • /bp linkExternalPortals Links your origin selection with a destination selection on another server
  • /bp createfromcoords Creates a portal directly from coordinates, without needing a player or wand
  • /bp remove Removes the nearest portal within 20 blocks
  • /bp removebyname Removes all portals with the given name
  • /bp setPortalName Sets the name of the nearest custom portal within 20 blocks
  • /bp getportalname Tells you the name of the nearest portal within 20 blocks
  • /bp setprice Sets the price of the nearest custom portal
  • /bp setpreset Sets the effect preset of the nearest custom portal
  • /bp getallowNonPlayerTeleportation Tells you whether the nearest portal allows non-player (item/mob) teleportation
  • /bp setAllowNonPlayerTeleportation Sets whether the nearest portal allows non-player (item/mob) teleportation
  • /bp setseethroughportal Sets whether you personally can see through portals
  • /bp toggleseethroughportal Toggles whether you personally can see through portals
  • /bp menu Opens the Portal Admin GUI

Alias:

  • /p and /bp Can be used instead of /immersiveportalspaperized

Permissions:

  • immersiveportalspaperized.createfromcoords Allows creating portals from coordinates
  • immersiveportalspaperized.getname Allows getting portal names
  • immersiveportalspaperized.link Allows linking portals
  • immersiveportalspaperized.linkexternal Allows creating cross-server portals
  • immersiveportalspaperized.remove Allows removing portals
  • immersiveportalspaperized.remove.others Allows removing portals you don't own
  • immersiveportalspaperized.reload Allows reloading the plugin configuration
  • immersiveportalspaperized.reconnect Allows reconnecting to the proxy
  • immersiveportalspaperized.select Allows using the selection wand and the admin menu
  • immersiveportalspaperized.setname Allows renaming portals and setting their price/preset
  • immersiveportalspaperized.setname.others Allows renaming portals you don't own
  • immersiveportalspaperized.getallowNonPlayerTeleportation Allows checking if items/mobs can teleport through a portal
  • immersiveportalspaperized.setAllowNonPlayerTeleportation Allows toggling item/mob teleportation for a portal
  • immersiveportalspaperized.wand Allows using the portal selection wand
  • immersiveportalspaperized.user Allows using portals (default: true)
  • immersiveportalspaperized.see Allows seeing through portals (default: true)

By default, everyone can walk through and see through portals (.user/.see). Everything related to creating, editing or removing portals defaults to OP.

Dependencies:

  • PacketEvents (required, used for packet-based portal rendering)
  • Vault (optional, for economy features)
  • Multiverse-Core (optional, for world management)
  • My_Worlds (optional, for world management)

Configuration: The plugin configuration file will be generated on first startup at plugins/ImmersivePortalsPaperized/config.yml.

The plugin supports hot-reloading via /bp reload.

For detailed configuration options, including world connections, portal effect presets, proxy settings, and performance tuning, refer to the comments in the generated config.yml.

Have fun :)

Build Instructions:

From the Project folder simply run .\gradlew build

Contribute:

If you wish to contribute to this Project please open a PR with a detailed explanation of your change.

License:

This project is a substantially modified/derivative version of BetterPortals (copyright (c) 2020 envel) and is distributed under the same Zlib License, which permits commercial use, modification, and redistribution. See the LICENSE file for the full text and attribution notice.

About

An attempt at making Immersive Portals but completely server-side as a Paper plugin.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages