Individual Login Throttling

Discussion in 'Archived: Plugin Requests' started by xeology, Apr 17, 2011.

  1. Offline

    xeology

    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.
     
    Last edited by a moderator: May 13, 2016
  2. Offline

    gnftoxic

    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.
     
  3. Offline

    xeology

    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
     
  4. Offline

    ThomasJ

    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.
     
  5. Offline

    xeology

    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 :D
     
  6. Offline

    ThomasJ

    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.
     
  7. Offline

    Hretsam

    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?
     
    seiji_kun likes this.
  8. Offline

    xeology

    Thats the idea of the plugin but not ban, just deny login
     
  9. Offline

    Hretsam

    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)
     
    seiji_kun likes this.
  10. Offline

    gnftoxic

    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).
     
  11. Offline

    xeology

  12. Offline

    gnftoxic

    Yeah I looked at it and I had a beta version coded, but it had a few issues with the actual code behind it.
     

Share This Page