Gateways
Version 1.0.2 out now!
General | |
---|---|
Overview | What is this? |
Features | What can it do? |
In-Depth | |
Groups and Membership | Gateways internal permission system |
Schematics | Gate schematic system |
Tutorial | Getting started with Gateways |
Reference | |
Commands | Gateways command list |
Permissions | Gateways permission node list |
Flags | Gate/Network flag descriptions |
Donations are much appreciated!
@asgaar
I'll be sure to look into it.
I got the motivation and time to work on this quite a bit today. I managed to:
The user interface is feeling really smooth. It's also great news for me because this system makes writing complex plugins like I do so much easier... Practically a big ol' library which gives me complex text-GUI features that Bukkit doesn't offer.
I think with all this done I am going to do some more testing tomorrow, then release it as 0.3 at the end of the day. And then I will immediately get started with 0.4 (probably add in the liquid portals mentioned earlier, and maybe hooking into other plugins) and any new features I can think of. Suggestions welcome. Once 0.4 is released, I will let it sit around for a week or so for extra bug testing before releasing 1.0, then I will be spending all of my time on Battlefields. (Gateways bugfixes notwithstanding)
*Call for assistance!*
Testing is quite difficult for me because I do not currently run a server and all of my testing is done on a non-dedicated server running off my computer. I am working on setting up my own home run dedicated server, but that won't be up for a little while... I'm looking for some people to help me test this out, either on their server, or to set up some time to connect to my non-dedicated server and play around. This is kind of why I haven't extensively tested permissions, it's a pain in the ass to keep flipping back and forth between console/game to edit my own permissions.
That sounds good. We are using towny for town management, maybe if you have enough time left you can think about an optional possibility to hook into towny? I would really appreciate it, but at first you should finish everything else =)
@asgaar
Permissions may be buggy, they have not been extensively tested. I will test them before releasing 0.3.
It is possible to do what you want, by making each town gate whitelisted and adding the town members as users of their town gate. This will however make the towns only accessible by town members in every situation... which may be what you want anyways?
You know, this gives me an idea. I think I will incorporate some form of separate player "group" creation. For example, you can make a group called "New York", and add all the people in New York into it. Then you can add this group to gates like you do players. This will make it easier to have multiple gates with the same user settings, and it will allow changes in members to be reflected across all the gates involved. Then in your case you would create a "group" for each town on your server and add their players into it, then add that "group" to the town gate's USER permissions.
Things are going slow here, I know. The changes I have been making are structural things, I am kind of using this plugin as a testing ground for a plugin-backend that I am developing simultaneously for Battlefields... (sub-commands, text buffering, command prompting). Plus it's hard to find time.
@SirMonsterSlayer
Nether portals will NOT work if the nether portal is within a very close distance to a Gateways gate. They will work in any other situation (although this may not be true if another plugin is interfering). On my test server they work fine (minimal plugins, multiverse is the only portal-related one running I think).
@xeNiums
Yeah, I will see if I can get a video done while I am testing 0.3
Can you make the screenshot or video ? Looks like it very good I want to test it
Hey 2n3904,
I am trying to create a nether network but I have problems. My setup is one portal in the nether, one portal in each town location on our server. My goal is to let players use the portal in their town to travel to the one portal in the nether and travel back only to their own town.
I have created all portals as an Admin, I have linked them all to the nether network. Users have the gateways.user node. They can't open a connection... after adding the test user as a member to each gate and the network he was still not able to open the connection.
Is there anything I missed? Is it even possible to create such a network?
Is it inteded that normal nether portals do not work ?
@SirMonsterSlayer
I'll look into supported additional visual settings in the future. At the moment the priority it finalizing the mechanics of the portal system.
Will probably add support for water portals, empty portals, and end portals.
Would it be possible to use ender portals ? Or different liquids ?
@Aloke
I'm not exactly sure what you mean by "one block"
Gates can be set up in three ways:
I think maybe all you were asking was to have a feature to save schematics like worldedit's wand? In that case, don't worry about it cause that's already been implemented in 0.3.
Which should be coming out in a day or two, probably.
Thank you for this epic alternative to transporter! It is much better than that. Anyways could there be an feature to make a gate be bigger than 1 block? for ex. use a feature like wand in worldedit you left click to set pos 1 and right click to set pos 2 and then theres a gate for example of 4 blocks size. is that possible?
@epicbastion
That's an interesting use. I actually started this plugin a long time ago when I was considering starting up my own server. I was styling the server kind of like oblivion back then - a world with huge, detailed cities and countless dungeons scattered around. I was going to use the gate system in the way you described a little bit - i.e. have some gates in the wilderness which would take you into a dungeon, but fail to work on the way out... Or have gates at the end of dungeons which take you to a city, but without a connection back. It would definitely be useful for controlling player movement.
I really can't think of a good way to implement connection material costs. I mean, it's no problem for networks/gates with one owner... It's the multiple ownership that screws things up... But that is something I definitely want to keep. There's also the problem of actually GIVING the player the item - if they are offline, I would have to store the item somewhere until they log in. Which is annoying. Or mess with the .dat file... which would probably be way more annoying then that. Any ideas?
I am currently rewriting the gate connection system to be much more advanced - namely to incorporate simultaneous multiple-gate connections. That mention of Gateways 0.3 obviously has been delayed, since I chose instead to massively upgrade the plugin. Expect 0.3 relatively soon. Don't worry - anything you have set up will not actually be affected. Save files are unchanged. Only the underlying stuff was overhauled, and the additions will append seamlessly.
I ended up adding the "Direct" link system mentioned earlier, and I do like the mechanics of it. I am calling the direct links "Paths". Paths are created by gate owners, and you can only link to another gate with a path if you are at least a "member" level of the target gate.
Paths have their own set of flags, including password/price/etc. So yes, they ARE mini-networks. Despite their similarity, I found that when you are working with gates you can always tell when you want to use a Network or a Path, because if you used the wrong one-it'd be much more of a headache to do what you want.
Price-per-distance was implemented as well... Oh, and an upgrade to the /gate map command. Now it can map out gates to a given number of jumps... I.E. '/gate map 5' will show all gates within a 5-jump range.
As i was reading through the comments i noticed you were considering using a material for a gate connection, this would be very useful for a quest server i am currently helping with.
the concept would be in order to use gate A u need a gold helmet in your inventory, and the gate would take it from your inventory when u stepped through, this would only be for a single gate to gate connection, so gate a to gate b requires 1 gold helmet, once a player got to gate b they would not need anything to return to gate a. again this would only be for a gate pair not a network or multiple gate connections.
regarding your problem of multiple gates you could make it so that if more than one gate needs to be accessed each gate would have their own item needed to make the total connection such as
gate a gold helmet gate b gold shovel gate c gold ingot
you would be able to travel to gate c if you had a gold helmet and a gold shovel but would need a gold ingot to travel back to gate a.
This would be very helpful with the a quest type server, basically it allows you to require players to fulfill an item quest to then go to a secret room to solve the quest or move on to the next part of the quest system. up to this point there is no way that i have found to activate things using items found on a quest in order to open up the next part of the quest.
@apondarz
Yeah, I understand the advantages of per user setting but like you mentioned that's a lot more data to save for something that's overall not that important. Honestly, you can set the price really low and just have people rely on the confirmation for anything that actually makes any kind of dent in their savings... All you have to do to confirm is type 'y' so it's not like its that much of a hassle.
Ah, well if you use '/gate map' it will show you the price of each of the connections next to them. '/gate route' will as well (for the whole connection route), but that is not yet implemented. I'm working on revamping the gate opening command to add in multiple-hop connections right now.
Just to be clear - I don't need charging with materials, money is for me much better.
About maximal non-confirmed price - a config parameter is also perfectly fine for me, although I can imagine that every player has different definition of 'acceptable amount' :) , that's why I was thinking of per-user setting (even only kept per session). But if it is really hard to do it that way, I propose to add a new command, something like: /gate cost <destination> which would show the price for that destination - for all those sensitive about spending money on a transportation system :)
Happy new year everybody!
@apondarz
Direct gate links are different from networks because they are single purpose and simpler. Networks are used to connect multiple gates into a unified system where every gate can see every other gate. Direct links on the other hand only connect two distinct gates, and not even always in both directions. For example, you were attempting to connect gates together in a particular way, and the network system got in your way. You would have ended up having to create three separate networks just to connect those three gates. And those would just be two-gate networks... which aren't really networks at all, just links. Direct links replace all of the single-link networks with something that doesn't clog up the network system. Also, they have much more versatility in specifying how they operate. For example, you could use a direct link system to make a link between two gates that has different prices in each direction very easily. With networks, you'd need two networks to do this! Your network system would be completely clogged with useless networks very fast.
The channel system I am reconsidering. You can actually create a network that functions like a channel right now using the PUBLIC flag (which lets players link gates to it without having membership). I will end up putting in a permission node system, with an additional flag called PERMISSION which will check all players using it against a given permission node. Note that the admins can set what flags other players can edit on their gates using permission nodes, so that they can restrict certain flags to be admin-only.
The pricing system doesn't charge with materials. Only money. Materials are optional is specifying what you need to actually create a gate/network/link. But they aren't settable as a toll price. I might add material tolls as well, if there is enough interest. The pricing system is a sum-and-divvy system, where the total price is calculated, taken from the player, and then divided up between everyone involved in the path the player takes... This system means that you could be trying to divide up a "gold nugget" among ten owners of a network... which obviously doesn't work... I'll think about it.
Also, I can see how the confirmation might get irritating, I will consider your suggestion. Though I might reduce it to a config line, since I really don't want to start storing anything player-specific for this plugin.
Oh, by the way. If anyone is willing, I'd love to take a trip to your server and see how you are using gateways and maybe chat with you about the plugin & its future. The most helpful thing right now is to see what YOU want out of it, and how I can adapt it to make it versatile enough to meet those needs! The feedback I get is very much appreciated and helps me quite a bit.
Here are my humble comments:
Direct - how would it differ from a net with only two gates? If no difference - why bother? :) OK, I can see a difference - a special permission (one can create direct links but not networks) - but I _personally_ can't see much use for such restriction...
Channel - maybe I don't understand completely but for me channel is a network, which anyone (or only allowed by permission) can link his gate with. So again - maybe just add a parameter to the network "who can link with this network"?
Price-per-distance - I was thinking how to specify price. It could be difficult, especially when you charge with materials, not money - becuase there is problem with dividing... You cannot specify price per meter, because it would be very small amount. There should be rather a parameter telling how far can you travel paying ONE something. Then if somebody sets charging with gold nuggets and this parameter to 1000 then all travels 0-1000 will cost one nugget, 1001-2000 two nuggets etc. With money rounding should be, of course, more precise (travelling 566 should cost 0.57 - with the same 1000 setting)
And a new idea connected with charging - confirming all paid travels can be boring, maybe each player could set "maximal acceptable non-confirmed charge" and when a price is below this value, the gate would open without confirmation? It could be even per-session value (without persistence) if it is difficult to store it for every player...
@apondarz
Ah! I see the problem.
Well, let me put forward some of the methods I was thinking of adding to the plugin.
These different methods of using gates will not be exclusive. Meaning that you can choose which combination you want to use on your server. Additionally, each method will have some configurable options. Such as price-per-distance. So you can add a price-per-distance to any of the above methods, for example have all of your local connections be forced to pay price-per-distance. Or have all direct connections be forced, etc.
Let me know what you think, everyone.
Maybe I should explain a bit more:
I want to charge for the travel between A and B 10$ and between A and C or B and C - 30$ My current solution is using two networks, short distatnce N1 with price 10$ and long distance N2 with price 30$. To make it work I have to link A and B with N1 and A, B and C with N2 (both A and B to make possible travellin A-C and B-C). But then A and C are connected by both networks. Currently the player jumping from A to B is charged with lower price (10$) but I'm not sure is it a rule or just luck. :) Using gate prices doesn't help because how should I set this price? I could, of course connect A,B and C with one network (10$) and set additional 20$ for using gate C, but what if there is another gate, D, near C (so C->D should cost also 10$)? As a workaround I wanted to link B with C only with 20$ net and use routing (yes, it means that person using A->C pays 30$ and B->C pays only 20$, but let's call it a discount for using the specific long-distance gate directly :) However if routing is manual only, it is not very user friendly.
That's why I was thinking about per-distance payment :)
I'm looking forward to your new ideas - even now my players love your gateways :)
@apondarz
1. There is no automated way. I'll consider adding that as a feature. My only problem with that is that intermediate gates would not really have any destination - since they are technically linking two gates at the same time. I guess I will make it so that all intermediate gates in the path open visually but without any destination - I.E. are unusable for the duration of the multiple-link connection. Perhaps this will be part of the route feature. For example, you look through the routes, and you can type 'next' to try for a new route and 'yes/y/confirm/t/true' to open the multiple-link connection. That will let you choose exactly how you want to open the super-link.
2. I'm not sure I understand your problem completely. What I got is that you have two gates, A and B. Each of these gates can connect to gate C. You want them to all use the same network, but have it so that the price of going from A->C is different from B->C. Right? If so, then just change the price of gates A and B to different values. The price of a connection is the sum: Start Gate + Network + End Gate. If they are on the same network with the same end gate, then the price of each connection will be a constant price (network + end gate) plus whatever the price of the start gate is. If your problem is that the gates A and B are local to one another and you can cheat by jumping between them, there is an easy solution - gates all have a flag called "LOCAL" which can enable/disable the local feature. Turn that off for at minimum one of the gates in question to disable any ability of jumping locally between them.
Ah! Distance based pricing is a great idea.
I was thinking things over last night and I decided I was going to expand gateways quite a bit. I will probably be making it so that there are much more then one way to connect gates - and these ways can all be used in tandem - so you pick and choose what methods are allowed. The network system as it is will not be affected. It'll be like how the local jumping feature is implemented - it can be completely disabled. (By the way to disable local gates you can just set the local distance in config to 0)
Thank you for your help, it works perfectly.
I have another questions:
1. I have three gates A,B,C and two networks N1 and N2 linked as below: A - N1 - B - N2 - C If i want to go from A to C I have to use both networks (A->B->C) How should I do that? 'map' on A doesn't show me C, only B 'route' on A shows me the route, but how use this route? Manually? (first jump to B then to C)? Or is there any automated way to jump directly to C using two networks?
2. I created two networks to charge differently for jumping to gate C, which is distant (A and B are close one to another). This is the reason of my problem. Is there any other solution for this situation? Maybe a new feature - price charged accoring to the distance travelled (parameter is used to set price-per-mile)? That would be nice... :)