Multiverse-TeleportFilter
Multiverse-TeleportFilter
Multiverse | Wiki | Source | Bug Reporting
About
Multiverse-TeleportFilter is a small plugin that hooks into Multiverse-Core and provides a customizable filtering system for Multiverse's teleport system (via /mvtp). It gives server administrators an easy to use, but powerful system for allowing/disallowing teleportation to various Multiverse worlds on a world by world, player by player basis via both a simple configuration file and a permissions system.
This is a pretty early release of the plugin. While I've done extensive testing, and it appears to be fully stable and bug-free, it's almost assured that there are several bugs I'm unaware of. If you encounter any problems, please report them on the GitHub bug tracker. It helps me to help you, therefore helping us all.
Relationship to Multiverse
This plugin requires Multiverse-Core to run, but is developed independently and does not redistribute any of the Multiverse Team's code. However, that also means it's not quite as polished as the Multiverse Team's code generally is.
Commands
Important Note: Any world referenced in any Multiverse-TeleportFilter command refers to the Multiverse alias for that world, as specified by 'alias' in Multiverse-Core's worlds.yml file (see the Multiverse-Core Wiki page on aliases for more details).
Command | Description |
---|---|
/mvtpf | Displays basic information about the plugin |
/mvtpfreload | Reloads the plugin's config.yml |
/mvtpfdisable | Disables the filter |
/mvtpfenable | Enables the filter |
/mvtpfallowed [destination world] | Checks if the issuing player can teleport to the destination world from the world they're currently in |
/mvtpfallowed [destination world] [origin world] | Checks if the issuing player can teleport to the destination world from the origin world |
/mvtpfallowed [player] [destination world] [origin world] | Checks if the given player can teleport to the destination world from the origin world |
/mvtpffilter add [destination world] [origin world] | Adds a filter entry for the given worlds |
/mvtpffilter remove [destination world] [origin world] | Removes the filter entry for the given worlds, if it exists |
Permissions
Permission | Description |
---|---|
multiverse.teleportfilter.status | Allows players to run /mvtpf |
multiverse.teleportfilter.reload | Allows players to run /mvtpfreload |
multiverse.teleportfilter.disable | Allows players to run /mvtpfdisable |
multiverse.teleportfilter.enable | Allows players to run /mvtpfenable |
multiverse.teleportfilter.allowed | Allows players to run /mvtpfallowed |
multiverse.teleportfilter.filter.add | Allows players to run /mvtpffilter add |
multiverse.teleportfilter.filter.remove | Allows players to run /mvtpffilter remove |
multiverse.teleportfilter.bypass | Allows players to bypass the teleport filter and teleport to any world they have access to normally |
multiverse.teleportfilter.* | Bestows all Multiverse-TeleportFilter permissions |
Need help?
Refer to the Wiki, it should contain all the documentation you need.
If you have any other questions or the documentation is either unclear or appears to be labyrinthine in design, feel free to post them as a comment on the plugin. I don't bite.
We NEED an update for 1.19+!!!!!
@Sleepydragn1
Just going to stick my head inside this conversation.
I have a similar issue, when doing /pl the plugin is in red colour. (It is not enabled)
Latest version of java did not solve the issue i am having.
Edit: Could we possibly get an update of this plugin to 1.8?
@daugvydas120
Although I haven't been working on this plugin as much as I should be, in this case, I believe the problem is that I've been compiling the plugin with a newer version of Java than the version that you're running. Updating Java should fix the issue.
Here's a link to Java's download page, for convenience's sake: https://java.com/en/download/manual.jsp
Plugin out-dated? I'm using the 2.5b verison of Multiverse.... In the console i receive this message: Caused by: java.lang.UnsupportedClassVersionError: io/github/sleepydragn1/MultiverseTeleportFilter/MultiverseTeleportFilter : Unsupported major.minor version 51.0
@NosirrahK
I'm sorry for not getting back to you sooner, but regardless I'm glad to hear the issue is fixed, despite no involvement on my end. I'm working on finishing up that build, and hopefully (hopefully) I'll have it done before I have to go on a hiatus for around a week or so on Thursday. Along with that update, I'll make sure to get the documentation up to date and ensure it's consistent with the proper version.
Also, in regards to your confusion about my documentation about aliases, I share it. In your perusal of the GitHub commit, you may have seen that near the top of the main class, line 31 states:
// TODO: Investigate using both aliases and normal world names (why does it work in the config?)
I know there was a reason that I put that alias requirement in the documentation, but for the life of me I cannot remember why.
Anyways, I do find it kind of funny that you're using the plugin for the same reason that I created it. I wanted to have two separate overworlds that players could teleport between, but (just like you) I couldn't find a way to prevent players from teleporting to and fro between the Nether, End, and their individual overworlds without removing players' access to the normal, vanilla portals entirely. Thus, I started working on this.
But yeah, I'm glad to see someone getting use out of my work. Don't ever hesitate to report problems, ask for help, or even just give general feedback, since that's really the only way I'll be able to work out the kinks of this plugin.
Edit: I forgot to mention, if you're using the probably-incredibly-buggy v0.2.0, you should probably download the current config.yml, located here: https://github.com/Sleepydragn1/Multiverse-TeleportFilter/blob/master/src/main/resources/config.yml. It's only a minor update, but I know I haven't gotten around to determining how I'm going to push updates to older configs yet, so you probably have the older configuration file running right now.
Hey again.
So, I don't wanna that guy, but I'm gonna end up being that guy: I got the plugin to work, but not v0.1.1; instead v0.2.0.
When I was testing your plugin, I downloaded the source (of v0.2.0, apparently) from GitHub just to see how it worked, put in a few log() calls to see where any issues might occur, compiled it, and it worked perfectly fine, as expected.
Based on how your wiki and BukkitDev post here are written, I can assume that you updated the information to v0.2.0 without actually releasing v0.2.0. Regardless, if anyone else is having the same issue, it would be helpful to know that I got it to work by compiling the source on GitHub.
Now that I got the issues out of the way, I would like to say Thank you very much for this plugin. I don't understand why Multiverse doesn't have anything as simple to use in it already. For such a large and well known project you would think they'd have it, but instead you require having the smaller plugins to hook into it just to get it to work.
I'm sorry for exploding the comment box with an essay about how v0.1.1 didn't work, but if it didn't work for one person it may not work for others, which is problematic. At least I got it to work, which may be helpful to someone else.
Hi there.
So, I don't wanna be that guy, but I'm gonna end up being that guy: for us on a server I run, this plugin doesn't work, and it's beyond me why it isn't working. I'm positive the issue is on my end since it's such a major issue, but I can't for the life of me track it down. Basically, it isn't filtering teleport commands.
So, we have Multiverse-Core 2.5-b678 Beta, and we have MV-TeleportFilter v0.1.1, both for CB 1.7.2. On our server we want to have a regular vanilla survival world, then maybe a few other worlds for minigames, plots, other survival worlds, whatever we choose, so we use Multiverse to manage that. Unfortunately, with the way Multiverse is written (as far as I know), we can't prevent players from using teleport commands (/mvtp) between the Nether, End, and Overworld. What we want to do is stop all command teleportation to and from the End and Nether and force players to use vanilla portals between them, but when players are in the Overworld they will be able to command teleport to another world (just not the Nether nor End). Right now, though, I'm just trying to prevent players from being able to do "/mvtp world_nether" or "/mvtp Hell" to TP to the Nether.
Our Multiverse has the following configuration:
and in GroupManager we gave the following permissions to players:
We need the 3 multiverse.access.<world> permissions, otherwise default portals wouldn't work. We also want to allow the multiverse.teleport.self.w permission to allow players to TP between the Survival world, and a plot/minigame/other world (just not the Nether nor End). And we have the multiverse.teleportfilter.allowed permission given so we can check which worlds are allowed to be TPed into and which aren't. Our MV-TPF config is the following:
Each of the teleport filters in the config were added using the "/mvtpffilter add <dest> <origin>" command.
In game, having the same permissions as a regular, default player, from the Overworld I ran "/mvtpfallowed world_nether" and it returned "You cannot teleport to world_nether from any world". Already, it was looking good. I thought it would bar my teleportation access to the Nether. I even tried "/mvtpfallowed Hell" (using our MV alias for the Nether: Hell) and it returned the same thing. However, I ran "/mvtp world_nether" and it teleported me to the Nether.
Then, while in the Nether, I typed "/mvtpfallowed world_the_end" and it said I couldn't TP to the End, but I ran "/mvtp End" and it TPed me into the End. The portals still work, though. I was able to use my Nether portal and the End portal as if they were vanilla portals.
In your GitHub Wiki you state that the world names use MV world aliases, so I changed the names in the config to the aliases we have (so instead of "world_nether" it was "Hell") and the filter still didn't work. In fact, when I ran "/mvtpfallowed world_nether" or "/mvtpfallowed Hell" from the Overworld, it said "you can teleport to world_nether from world", and in fact, I could teleport.
So, in all, regardless of what the filters were set to and what they told me, it didn't matter, I was still able to teleport freely. I don't want to dump all this on you and say "Fix it" but I have no clue where the issue is being caused, and this one issue is preventing us from proceeding with releasing a multiworld server.
Any help you could give would be greatly appreciated. If you need any more information, I will gladly provide it.
I didn't know how to fit this in above since it's so long, so here's our MV worlds.yml file in case you need it:
Edit: I also tried changing a few of the settings in the config, like filter-disabled to true (which disabled the whole filter, as expected) and ignore-filter-permissions to true, but still didn't get working filtering.