I would love to see a plugin that records when a player logs off and doesn't let them login in until a set amount of time passes giving them a set message. Reasons for this, Players like to constantly relog during short periods of lag making them log periods of lag Griefers will constantly relog to CAUSE lag Optional Features (if you feel up to it) Set amount of times for when a player attempts to login during a cooldown period that would trigger a set LARGER cooldown. Disable/Enable command - /lcd (login cooldown) or similar. A ignore list for admins. And please don't suggest one of the other login plugins because they throttle users by EVERYONE'S attempt to login and is not what is really needed as much as targeting constant re-loggers. Thanks for the time. Surprised I didn't get any hits on this. Would be a great lag reducer and grief protection that I am sure many people would love. . . EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Never saw this, however it is a great idea. I will look into it tomorrow, watching the thread so I don't forget. I have a single theory on how this might work, and it should work just fine. You might be able to expect a release tomorrow.
Awesome great job! This is a serious issue and many people dont realize it lol. Every time someone logs in the server has to load several chunks and when they logs off it has to release it. Throw this on top of a crammed process queue (or however bukkit queues up not yet completed actions) you get WORSE lag! Drives me insane when people relog during a few seconds of lag creating a 10-30 minutes of it >.< Anyway, the method would be similar to some plugins already around that detects names and that kick players. Here is some logic if it helps, its in a human readable sudo-code form since I still do not know java or how flexible it is compared to the languages I do know. I tried to keep it as light and bloat free as possible and tried to avoid mass consumption of memory or resources. I also included a custom loop check that would be a one line attempt at preventing the only loop from going infinite, for instance no server should have more then 5000 users on a day >.> Thanks for the time and hopes this helps, it would be a great addition to all servers dealing with this issue! LOGIN CHECK On Login if arrayName[name]>0 then kick from server On logout, get name store in variable name, arrayName[name]=TIMEFRAMEINTICKS arrayCount[counter]=name counter=counter+1 TICK CHECK Tick Control counter2=0 While arrayName[arrayCount[counter2]]NOT="" or NULL arrayName[arrayCount[counter2]]=arrayName[arrayCount[counter2]]-1TICK OPTIONAL - if counter2=SET.UNREASONABLE.NUMBER then terminate and echo error. LOOP
Imo the proper fix for the lag issue is to alter how Bukkit works. Instead of releasing active chunks the instant they are abandoned, there should be a slight delay of 5-15 seconds before it is released. This way you cannot spam the server in a way that forces it to eat resources like crazy. I'd still love to see a trottle function though as the chatspam is annoying.
either way you still have a mass release of chunks, either now or later. Postponing it is just delaying the lag not eliminating it. The only true way would to be a cooldown period to log back in. Yes this should be integrated but I will def settle for a plugin
True, however if people quickly log off only to log back in (assuming a trottle would not hit until the second or third logon/off in quick succession), there would be no impact on the server itself as the chunks would still be active. The chunks would then be onloaded shortly thereafter. It would require some more resources overall, but would provide a more stable resource drain and would avoid the main problem altogether, which is excessive load caused by people logging in and out of an area they are all alone in.
You could just make a plugin that simply bans the people for a short period of time? I think this will stop the server from loading the chunks... (and after a number of relogs in a period of time, like 5 times in 1 minute) they get a full ban?
I know, i ment more like a temp ban. Let the plugin ban the player, and unban him a minute later of so. This will prevent the user from loading any join plugin events and the loading of the chunks. As playerbans are checked before that. (Dont know if this is 100% true)
Btw I just wanted to let you know, I did not forget about this, I'm waiting for the next major update for Bukkit. I will not be coding this for 1.4, as soon as there's a 1.5 release out, I will start work on this (probably an hour of coding and testing and I'll be done).
Appreciate it but I took the liberty of learning java one night and decided to just code it to finish up my learning. Thanks though! http://forums.bukkit.org/threads/se...ng-throttling-now-with-permissions-733.14510/
Yeah I looked at it and I had a beta version coded, but it had a few issues with the actual code behind it.