WarpPortals
Create portals of any shape/size/block! Functional, robust, customizable, and API extensible... this is WarpPortals!
Features
- Portals of any shape, size, or block type!
-
Now has an API!
- Documentation can be found at WarpPortals/API
- An example implementation can be found at example/WarpPortalsEventListener.java.
- Create portals with any block type!
- Portals without frames or with frames of any material
- Portals that work between worlds
- Easy to create Portals
- Easy to set destinations
- Precise teleportations
- Global Enable or Disable normal portals functionality
- Per-portal permissions. Setup donor portals!
Commands
Check out the Table of Commands
FAQ
How do you create a Portal?
- First choose the Portal destination and set it using "/wpdc [name]". This command will set the destination to your current location, world AND angle of view.
- Second, build a portal of any shape out of Gold Blocks. These will make up the Portal's body.
- Third, hold a non-block item and run the command "/wppc [portalName] [destName] [portalBlockMaterial]". This will make it so the next Gold Block you click will turn them into a Portal made of the specified portalBlockMaterial, eg WATER.
- Fourth, right-click any one of the Gold Blocks you built. The plugin will find all adjacent Gold Blocks and turn them all into a Portal!
- Fifth, profit.
Who can use a WarpPortal?
Any one can use a WarpPortal by default. You can revoke someone's WarpPortal rights by setting their permission "warpportal.enter" to false. New: The WarpPortals' Event API allows for this to be overridden!
How do you use WarpPortals?
WarpPortals are always active and simply walking though one will teleport you to its destination.
Who can create/admin a WarpPortal?
Only players who are ops or have the "warpportal.admin" permission.
What settings are there?
- You can change whether normal Nether/End portals function. For example, setting this to false would mean that when a player walked through a Nether portal that they activated with flint, nothing would happen.
- You can change the general Text Color used by the plugin. By default Yellow.
- You can adjust the max portal size. This limit exists so that a Portal so large that it would eternally crash the server can't be created. By default 1000.
- You can change the teleportation message. By default it is "Wooooooooosh!"
- You can change the teleportation message Text Color. By default Purple.
Is there Economy support?
No. Portals are always active and currently don't support any form of Economy plugins. New: The WarpPortals' Event API provides the means for an external plugin to be written to handle this.
What bugs are there?
<s>Ghost Portals: Currently, anyone can break the Portal Blocks that make up the Portal and that will cause the PORTALENTERED event to never fire. This means that to the plugin the Portal still exists but realistically it isn't there anymore. To keep this from happening something like WorldGuard should be used to protect the Portals (though this protection may be a built-in feature in the future). To deal with the possibility of all the Portal blocks getting broken in a Portal, you can use the "/pdelete [portalName]" command to return the Portal to its original Gold Block form. If only a few blocks get broken, simply replacing them with new Portal Blocks should work._</s> Fixed in version 4.1.3
<s>Bad Text Colors: Also, the Text Color settings don't appear to be cross OS Compatible. By default they are setup for Windows but if they don't work for you (if you get white text from the plugin) all Text Color Codes are editable in the Plugin's settings file.</s> Fixed in version 2.0.1
<s>Single Width Portals: Single width portals can only face East or West. This is a very weird bug but it is an unfortunately un-fixable problem. Portal block orientation is decided off of the adjacent portal blocks. Therefore, if two portal blocks are side-by-side, they will connect and face the right way. (Side Note: Even this was a hack and required overriding portal block physics). Sadly, a single portal block doesn't have anything to base it's orientation upon and will then default to East/West. This forum thread details the problem <https://forums.bukkit.org/threads/rotating-portal- blocks.12598/forums.bukkit.org/threads/rotating-portal-blocks.12598/></s> Only applies to WarpPortals made of Nether Blocks as of version 4.1.3
Install
- Download the latest version right here!
- Drop it into the Plugins folder in your CraftBukkit install.
- Go create some spiffy, funky, wild, seriously fun Portals!
Source Code and Downloads
The latest Bukkit approved version to can be found attached to this page! Though you can always find the absolute latest version at [Latest Version](https://github.com/McCraftaholics/Bukkit- WarpPortals/raw/master/WarpPortals_latest.jar)
Source code can be found at github.com/McCraftaholics/Bukkit- WarpPortals
- Please feel free to make changes!
- Pull requests are awesome. Issues can be posted at github.com/McCraftaholics/Bukkit-WarpPortals/issues
API
WarpPortals now has an Event API. Bukkit explains Events at Event API Reference. WarpPortals triggers custom events allowing other plugins to tie into these events. The events provide player & portal information and allow other plugins to cancel the portal teleportation.
Further documentation can be found at WarpPortals/API
Open an Issue on the GitHub page if you have any questions!
Changelog
5.6.5
- Replace usage of player name's with new player UUID standard
- Rename portal.yml backups to "*.yml.bac" in order to signify the data type
5.6.4
-
Merge PR #28 from xxyy
- Fix Nether portals not disappearing when frame destroyed
- Thank you xxyy!
- Devs, this plugin is now built using maven
5.6.3
-
Restore original permission system - Fixes 'OP only' errors!
- Portals are mass turned on/off for players
-
New per-portal permission system can be enabled
- Set 'portals>permission>checkIndividualPortalPermissions' to 'true' in the config file
- This setting requires wildcard permission support for normal operation
5.5.2
-
Teleportation messages can now be disabled, properly.
- Set portals>teleport>message to "&none", without the quotes, in the config.yml file # for real this time
-
WarpPortals now handles World unloads and deletions
- This should fix all known issues causing data to be deleted
- The portal ID tool is multi-use, it won't dequip after each ID.
-
Per-portal permissions can now be set (eg, donor rank portals)
- WarpPortals now check for if a player has "warpportals.enter.{PortalName}" permission before teleporting
- By default ever player has "warpportals.enter.*", this can be changed and allows for donor rank portals and such
- You can set whether players are told that they don't have permission, or make the portal "silent"
- Faster onPlayerMove algorithm that is over 100% more efficient in some situations!
-
Users are alerted when they run commands without proper permission
- Should help permission debugging
- CommandHandler polished for more efficiency as well
4.2.1
-
Teleportation messages can now be disabled.
- Set portals>teleport>message to "&none", without the quotes, in the config.yml file
-
WarpPortals now auto backups the data file after every portal creation
- This should allow for easy recovery in the event of data loss
- As of now, there is no limit on the number of backup files that can be created. Manual cleanup may be necessary.
-
New API event added: WarpPortalsCreateEvent
- Triggered when a user creates a WarpPortal
- Allows access to the new portals name, destination, blocks
- Allows these elements to be modified by other plugins
4.1.4 Critical Fix
-
WarpPortals now handles permissions properly
- Non-ops can use WarpPortals
- Follows Bukkit Permissions structure
- Thank you WeaselSqueezer
4.1.3
-
New portal interaction engine on the backend
- WarpPortals can be made of any block type!
- WarpPortals activate faster for players in survival mode
- Protect WarpPortals from getting destroyed
- Keeps liquids from flowing inside portals so that portals can be made of water/lave
-
Renamed all WarpPortal commands in a more logical manner
- Separated commands into wp-portal-* and wp-destination-*
- Abbreviations added for ease-of-typing, checkout Aliases
3.0.0 (2.1.1 merged in)
- Added soft-depends to hopefully fix all the lost portals errors!
-
Added WarpPortals Event API
- Plugins can be written that tie into WarpPortals
- Example: An economy plugin can be created that charges people for portal use
- Allows 3rd parties to add missing features
2.01
-
ENDER PORTALS!!!!
- Horizontal portals can now be made out of Ender Portal!
- Instead of using Gold Block to create the portal, use Quartz Block.
- Unlike Normal Portals which are vertical, Ender Portals are horizontal beasts.
- BugFix: Chat Colors are now used for portal creation.
- BugFix: Portal Creation Tools stay active for retries when a portal fails to create due to MaxRecursionLimit or similar.
- Minor: Portal Delete Tools now alert when they are equipped.
1.93
-
Chat Colors are now handled properly, the Bukkit way.
- Setting a Chat Color doesn't require any special characters in the config file anymore! Just the color code. (eg. '3' instead of '&3')
- In addition to convenience, this should fix all of the config problems! @R4m8o, @DarkenInsanity, @SpookyPirate
- Portals now also save their state to disk on creation. This should fix any lost portal errors. @getnjr, @iDazzah
1.81
- Error reporting for Config File Loading and Portal Saving has been improved. Instead of receiving an obscure message, the actual error is now reported.
1.70
- Compiled and coded against Java SE 6. Supports Java 6 finally! Use it on both Java 6 and 7 :)
1.64
- Added MCStats support (http:mcstats.org) for my own personal enjoyment and motivation! Don't worry, you can opt-out of course. Everything about it is explained at this forum thread MCStats / Plugin Metrics (R7) - Easy & advanced Plugin Statistics.
1.63
- WarpPortals requests highest priority on Portal Enter events. This should fix normal portals acting weird (@SpookyPirate) and Warp Portals taking a while to teleport (@mrchasez)
1.61
- The functionality (as in: the ability to teleport like normal) of traditional Nether/End portals is now toggleable via settings. @sgtcaze
1.50
- Non-WarpPortals now function like normal! @SpookyPirate
1.43
- Hopefully fixed any File Reading / Scanner errors. Thanks Zylithi!
- Fixed command conflict with WorldGuard concerning teleporting to Portals/Destinations.
1.31
- First offical release!
Enjoy :)
@nightgunner101
Update to version 4.1.3 of WarpPortals, that will hopefully fix the issue.
@awendland
im using v. 1.6.4
@nightgunner101
Are you using version 4.1.3 (erroneously reported as 4.3.1.3 in the console) of the plugin? It should teleport players, in whichever gamemode, immediately as the enter the WarpPortal.
why is it that only ppl in creative can go into the portal and ppl in survival cant go in :/ plz help .....
@EquaLivern
PM me and we will figure these issues out
This seems like it has so much potential, but I haven't got any errors like the other one.
But I do get it saying error modifying portal. When I try to change the gold blocks to portal(blocks). It worked once! but not now. And It still wont let me travel world to world. Not much to work with I know but all I have to offer.
Step by step:
-Went to world1 /pdest waiting = (world1, x,y,z)
-Went to world2 /pcreate wait waiting gold_block = Right click gold_block..etc
-Right click gold block, then /wppm wait portal(worked once) then get "Error modifying portal"
Now /plist was working now its gone error.
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:192)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServer.java:528)
at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerConnection.java:968)
at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.java:886)
at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:837)
at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296)
at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116)
at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592)
at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227)
at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488)
at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421)
at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
Caused by: java.lang.NullPointerException
at com.mccraftaholics.warpportals.objects.CoordsPY.equals(CoordsPY.java:69)
at com.mccraftaholics.warpportals.manager.PortalDestManager.getDestinationName(PortalDestManager.java:43)
at com.mccraftaholics.warpportals.manager.PortalManager.getDestinationName(PortalManager.java:114)
at com.mccraftaholics.warpportals.commands.CmdPortalList.handle(CmdPortalList.java:19)
at com.mccraftaholics.warpportals.bukkit.CommandHandler.handleCommand(CommandHandler.java:67)
at com.mccraftaholics.warpportals.bukkit.PortalPlugin.onCommand(PortalPlugin.java:108)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
Probably more error with other commands, but I have to get off and sleep.
@awendland
Thanks I will give it a try!
When there is a downloadadle updated jar file :P
Actually I found it. lol.
@EquaLivern
Check out the latest version of WarpPortals. A significant portion of the core framework has been changed and your error may now be fixed.
[SEVERE] Could not pass event PlayerPortalEvent to WarpPortals v3.0.0 (obviously minecraft 1.6.4) org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R3.PlayerList.changeDimension(PlayerList.java:515) at net.minecraft.server.v1_6_R3.EntityPlayer.b(EntityPlayer.java:419) at net.minecraft.server.v1_6_R3.Entity.y(Entity.java:265) at net.minecraft.server.v1_6_R3.EntityLiving.y(EntityLiving.java:145) at net.minecraft.server.v1_6_R3.Entity.l_(Entity.java:230) at net.minecraft.server.v1_6_R3.EntityLiving.l_(EntityLiving.java:1243) at net.minecraft.server.v1_6_R3.EntityHuman.l_(EntityHuman.java:157) at net.minecraft.server.v1_6_R3.EntityPlayer.h(EntityPlayer.java:228) at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:343) at net.minecraft.server.v1_6_R3.Packet10Flying.handle(SourceFile:136) at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296) at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37) at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.NullPointerException at org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer.teleport(CraftPlayer.java:395) at org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity.teleport(CraftEntity.java:199) at com.mccraftaholics.warpportals.bukkit.BukkitEventListener.onPortalEnter(BukkitEventListener.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
Went to first world1 /pdest test then went into world2 /pcreate TestPortal test then walk through portal and doesnt take me to other world and got that error.
@EquaLivern "I get an error" doesn't cut it. It never has and it never will. It makes my blood boil and I'm not even the dev. State the actual error if you want a developer to help fix the problem. Help him help you. How can anyone fix a problem not knowing what the problem is? You want him to try to portal to another world and hope he gets the same error that you did? What if he doesn't get the same error? What if he gets no error or a different one? How will he know if it's the same one? Do you want him to spend 2 hours looking for the issue you have, because you were too lazy to type in the exact error? It's not fair to do that. You also might want to mention what version of the plugin and bukkit you are using. And tell him *exactly* what you did, every step you did, in that order, leading up to the error.
FYI, I'm not entirely sure turning off the nether stops the zombie pigmen from spawning at nether portal blocks. They might spawn near nether portal blocks regardless of whether or not the nether exists. It's not like they come from there, they are simply created right at the portal when they spawn.
The only problem I have is that I get an error when I try to portal to another world. So yeah, Pigmans are no problem cause I turned off nether world. But other than that it works wonders on the same world! But I need to be able to portal to other worlds.
@Roenie82
Awesome response! I'll set if I can address the remaining issues over the weekend :)
Thoughts on the update:
Edit: tried to stop the zombie pigmen from spawning by a bit of trickery around my portals but no cigar...they'll spawn on any solid block around the portal.
Edit: ah i see /pcreate optionally takes a [world,x,y,z] directive instead of pdest.
Edit: it appears that EssentialsProtect is able to stop the zombiepigmen from spawning.
@Roenie82
That is most likely the reason. The current development release is adding support for other portal block types which would fix this issue. It would be awesome if you could test out and respond to my previous post. I'm confident in the stability of the upcoming release but I don't have the means to test everything and any bodies help would be amazing.
A zombie pigman just spawned in the portal and entered my portal room. Not cool! The portal didn't even go to the nether. I used obsidian on either side of the 2x3 portal (none at the top/bottom) but I doubt that matters. I assume the mob spawned because of the kind of portal block that this plugin uses to create the portals with?
Here is a version implementing a custom portal-interaction detector. It fixes problems 1 and 2 mentioned in the comments below. It needs further testing though, so I am posting the download link https://db.tt/rMkSUl4C here before putting it live.
This is a DEVELOPMENT version. Make a backup of your WarpPortals data file before using it!
If you test it, could you respond with:
Thanks!
@Dogrules23
PM me with a more detailed version of your issue and I'd love to help you sort it out.
I put a portal somewhere, is there a way to use that portal to get back to a room with the rest of the portals inside?
@R4m8o
This is a side-affect as a result of an intentional decision. WarpPortals is triggered only on Bukkit's default onPortalEnter event. This means a couple of things: 1) Portals can only be entered from the front or back 2) Portals take longer to activate when in survival mode (the length of a normal portal) @Gr0oup115 3) Portals can exist in memory but not in actuality because their portal blocks are destroyed @MCJackJ
The reason for this decision was two-fold: Firstly, it is the most Bukkit-ist way to implement the plugin, by tying in to pre-existing structures. Secondly, it is very processor efficient because it doesn't use any tick-by-tick logic; it is reactive versus active.
Due to the less-than-awesome side effects though, I will be looking into implementing an alternative Portal interaction detector. Any thoughts on this would be greatly appreciated on the GitHub page here: httpsgithub.com/McCraftaholics/Bukkit-WarpPortals/issues/11
@ awendland
Hey i found another issue with warp-portals
All portals work fine when you jump in from above or walk in. When i use a ledder or fly and come in the portal from below, the portal works like an regulare end or nether portal. i hope you find a way too fix this. if you need some more informations, tell me. So i can show what i can do to help you fixing this.