Turnstile
Version 2.7.0
NOTE: This plugin requires you have Vault enabled on your server
This plugin is used to create a Turnstile to prevent players from entering certain locations without paying money/items.
A Turnstile is a gate made up of a fence block or a door, this gate is only opened by paying money (triggered by either pressing a linked button, standing on a linked pressure plate, or walking through it) or placing specific items in a linked chest. The gate will close once someone steps through it or after a certain amount of time. Money/Items goes to the Turnstile owner (Money may go to a bank)
Features:
- Supports all major Economies and Permission Plugins thanks to Vault
- You can change what command this plugin uses by editing the plugin.yml (found inside the plugin jar file)
- MultiWorld support
- Configurable properties
- Custom messages
- Turnstiles can charge specific items instead of money
- Turnstiles may be set to charge money and allow the Player to pass for free for a given amount of time (like a day pass)
- Set different Turnstiles to unique prices and owners/banks
- Make Turnstiles one way
- Players can be charged either when they open the Turnstile, or when they walk through it
- Restrict use of a specific Turnstile to a certain group
- Create private Turnstiles only you can use
- Make a Turnstile Free or Locked during a certain time of day
- Autoclose timer
- Create Signs that automatically display and update Turnstile information
- Charge users money to create turnstiles
- Only owners and admins can destroy Turnstile blocks, buttons, and chests
- Only one person may look into a Turnstile Chest at a time
- List and locate Turnstiles
- Durability support
- Supports fence blocks, iron or wood doors, trapdoors, and fence gates
Permission Nodes:
- turnstile.open = Needed to open a Turnstile
- turnstile.sign = Needed to make a Turnstile Sign
- turnstile.make = Needed to make a Turnstile (/ts make)
- turnstile.set.price = Needed to set the price of a Turnstile (/ts price)
- turnstile.set.owner = Needed to the owner of a Turnstile (/ts owner)
- turnstile.set.access = Needed to set who has access to a Turnstile (/ts access)
- turnstile.set.bank = Needed to set the bank that a Turnstile is connected to (/ts bank)
- turnstile.set.free = Needed to set the time that a Turnstile is free (/ts free)
- turnstile.set.locked = Needed to set the time that a Turnstile is locked (/ts locked)
- turnstile.earned = Needed to see how much a Turnstile has earned (/ts earned)
- turnstile.collect = Needed to collect money/items from a Turnstile (/ts collect)
- turnstile.list = Needed to see a list of Turnstiles (/ts list)
- turnstile.info = Needed to See info about a Turnstile (/ts info)
- turnstile.openfree = Open Turnstiles free of charge
- turnstile.ignoreowner = Edit other Players' Turnstiles
Commands:
Turnstile Signs:
Turnstile Signs can automatically update information
Each Sign can display two pieces of information such as:
- Name: The name of the Turnstile
- Price: The amount of money to use the Turnstile
- Cost: The item cost to use the Turnstile
- Counter: The amount of Players who used the Turnstile
- Money: The amount of money the Turnstile has earned
- Items: The amount of items the Turnstile has earned
- Access: Whether the Turnstile is public or private
- Status: Whether the Turnstile is open, free, or locked
Format:
- ts link
- [Turnstile Name]
- [Information type 1]
- [Information type 2]
@HitmanXtr
@peterhotmail
@darkcloud784
@funk1983
New version 2.4.0, lots of new stuff. check the changelog. Also I will be finialize citizens support as soon as aPunch releases Citizens 2.0
When I set cost of my turnstile to free it works perfectly. When I set cost to anything more than free it charges, but does not open. Here is the console error code:
26.02 19:56:12 [Server] INFO at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) 26.02 19:56:12 [Server] INFO at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) 26.02 19:56:12 [Server] INFO at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537) 26.02 19:56:12 [Server] INFO at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) 26.02 19:56:12 [Server] INFO at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:44) 26.02 19:56:12 [Server] INFO at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100) 26.02 19:56:12 [Server] INFO at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) 26.02 19:56:12 [Server] INFO at net.minecraft.server.Packet15Place.handle(SourceFile:39) 26.02 19:56:12 [Server] INFO at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:75) 26.02 19:56:12 [Server] INFO at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:609) 26.02 19:56:12 [Server] INFO at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:283) 26.02 19:56:12 [Server] INFO at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:187) 26.02 19:56:12 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) 26.02 19:56:12 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:61) 26.02 19:56:12 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$11.execute(JavaPluginLoader.java:340) 26.02 19:56:12 [Server] INFO at com.codisimus.plugins.turnstile.listeners.PlayerEventListener.onPlayerInteract(PlayerEventListener.java:114) 26.02 19:56:12 [Server] INFO at com.codisimus.plugins.turnstile.Turnstile.checkBalance(Turnstile.java:193) 26.02 19:56:12 [Server] INFO at java.lang.String.replaceAll(Unknown Source) 26.02 19:56:12 [Server] INFO at java.util.regex.Matcher.replaceAll(Unknown Source) 26.02 19:56:12 [Server] INFO at java.util.regex.Matcher.appendReplacement(Unknown Source) 26.02 19:56:12 [Server] INFO at java.util.regex.Matcher.start(Unknown Source) 26.02 19:56:12 [Server] INFO java.lang.IndexOutOfBoundsException: No group 1 26.02 19:56:12 [Server] SEVERE Could not pass event org.bukkit.event.player.PlayerInteractEvent to Turnstile 26.02 19:56:12 [Server] INFO Turnstile Charge Debug: Anithera's new balance is $76 26.02 19:56:12 [Server] INFO Turnstile Charge Debug: $1 has been given to Anithera 26.02 19:56:12 [Server] INFO Turnstile Charge Debug: Anithera's new balance is $75 26.02 19:56:12 [Server] INFO Turnstile Charge Debug: $1 has been taken from Anithera 26.02 19:56:12 [Server] INFO Turnstile Charge Debug: Sending $1 to Anithera from Anithera 26.02 19:56:12 [Server] INFO Turnstile chance Debug: Charging Anithera 26.02 19:56:12 [Server] INFO Turnstile chance Debug: Turnstile is public 26.02 19:56:12 [Server] INFO Turnstile chance Debug: Checking access rights for Anithera
@Codisimus
Very cool plugin!! i just hope you will update it to 1.1 so i can use it on my server :)
o it still works on 1.1 :D yay
hey pls update the plugin for 1.1 much appreciated :)
09.02 20:08:14 [Server] INFO Please contact one of the authors of plugin 'Turnstile': Codisimus 09.02 20:08:14 [Server] INFO This error is logged only once: it could have occurred multiple times by now. 09.02 20:08:14 [Server] INFO at com.codisimus.plugins.turnstile.Turnstile$1.run(Turnstile.java:271) 09.02 20:08:14 [Server] INFO at org.bukkit.craftbukkit.block.CraftBlock.setTypeId(CraftBlock.java:88) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.setTypeId(World.java:439) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.update(World.java:467) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.applyPhysics(World.java:503) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.k(World.java:518) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1024) 09.02 20:08:14 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:601) 09.02 20:08:14 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 09.02 20:08:14 [Server] INFO at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) 09.02 20:08:14 [Server] INFO at org.bukkit.event.Listener.onBlockPhysics(Listener:0) 09.02 20:08:14 [Server] INFO java.lang.IllegalAccessError: Synchronized code got accessed from another thread: com.codisimus.plugins.turnstile.Turnstile$1 09.02 20:08:14 [Server] WARNING Could not properly handle event BLOCK_PHYSICS: 09.02 20:08:14 [Server] INFO Please contact one of the authors of plugin 'Turnstile': Codisimus 09.02 20:08:14 [Server] INFO This error is logged only once: it could have occurred multiple times by now. 09.02 20:08:14 [Server] INFO at com.codisimus.plugins.turnstile.Turnstile$1.run(Turnstile.java:271) 09.02 20:08:14 [Server] INFO at org.bukkit.craftbukkit.block.CraftBlock.setTypeId(CraftBlock.java:88) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.setTypeId(World.java:439) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.update(World.java:467) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.applyPhysics(World.java:502) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.k(World.java:518) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1024) 09.02 20:08:14 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:601) 09.02 20:08:14 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 09.02 20:08:14 [Server] INFO at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) 09.02 20:08:14 [Server] INFO at org.bukkit.event.Listener.onBlockPhysics(Listener:0) 09.02 20:08:14 [Server] INFO java.lang.IllegalAccessError: Synchronized code got accessed from another thread: com.codisimus.plugins.turnstile.Turnstile$1 09.02 20:08:14 [Server] WARNING Could not properly handle event BLOCK_PHYSICS: 09.02 20:08:14 [Server] INFO Please contact one of the authors of plugin 'Turnstile': Codisimus 09.02 20:08:14 [Server] INFO This error is logged only once: it could have occurred multiple times by now. 09.02 20:08:14 [Server] INFO at com.codisimus.plugins.turnstile.Turnstile$1.run(Turnstile.java:271) 09.02 20:08:14 [Server] INFO at org.bukkit.craftbukkit.block.CraftBlock.setTypeId(CraftBlock.java:88) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.setTypeId(World.java:439) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.update(World.java:467) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.applyPhysics(World.java:501) 09.02 20:08:14 [Server] INFO at net.minecraft.server.World.k(World.java:518) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) 09.02 20:08:14 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1024) 09.02 20:08:14 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:601) 09.02 20:08:14 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 09.02 20:08:14 [Server] INFO at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) 09.02 20:08:14 [Server] INFO at org.bukkit.event.Listener.onBlockPhysics(Listener:0) 09.02 20:08:14 [Server] INFO java.lang.IllegalAccessError: Synchronized code got accessed from another thread: com.codisimus.plugins.turnstile.Turnstile$1 09.02 20:08:14 [Server] WARNING Could not properly handle event BLOCK_PHYSICS:
@darkcloud784
well I added my own inventory events for the upcoming version but I must do more b4 citizens support will work properly.
@Codisimus
bukkit has said before that they wont add inventory events (unless they have changed their mind) I would recommend building this off spout if its inventory events are needed.
@Codisimus
Ace news, will test the access stuff out further when the new stable build is released, thanks
@funk1983
It is already supported, and I fixed this error, expect a stable release in a couple days after I get a chance to test all the new features
I love this plugin and there doesn't seem to be anything like it out there but it doesn't recognize the groups from permissionsbukkit, any chance of getting it supported?
Did a bit of testing and also found im getting a error when trying to change the owner of the ts. included a copy of the console
@JoneKone
error logs? update to the newest version.
Chest and Fence to unlink.. Watching chest I think.. I think I tried to unlink it while watching the fence aswell
There is an "Internal Error" while pushing the button and fence is 2 blocks away..
Then when I push the button but don't actually enter in the door.. Sometimes it gives you an Internal Error and You get kicked from server.. After you relog the button seems to be pushed in, but works.
This is with free Turnstile.. and 2.2.0
@darkcloud784
The command shows up in the help page when you have the config set to use the citizens plugin. This feature is still in beta until Bukkit adds inventory events
How exactly do you link a citizen to the turnstile?
@Codisimus
Thank you very much, it works correctly!
@pipocircus
I added the debug option to version 2.3.1
@raicha007
@GmK1
Try the new version and if it still doesn't work, try the debug option
@tribulations1
Access is supposed to allow certain groups not deny. I fixed it in version 2.3.1 so it does this.
@raicha007
Same here :/
Hiya love the plugin - just wondered if ts access group could have the opposite also so as well as stopping a specific class there was a command to allow a specific class
I have exactly the same problem as pipocircus tried 2.3.0 and 2.2.0 versions and the plugin acts as everyone is an OP - does not take money from them. I dont have permission plugin and in the turnstile properties use'openfree'node= is set to false.
@JoneKone
what exactly are you typing for the unlink command? I'll see if I will be able to do anything about blocking enderpearl teleporting through open turnstiles