Inactive [SEC] NoCheat v3.5.0 [CB 1.2.4 R1.0][ABANDONED]

Discussion in 'Inactive/Unsupported Plugins' started by Evenprime, Feb 15, 2011.

  1. Offline

    Evenprime

    Xp10d3, Dereku, MyPictures and 35 others like this.
  2. Offline

    ReapKarmah

    Ok I have a question but first let me say how I LOVE this plugin! Especially how it actually works and prevents flying :)!

    This has probably been mentioned already but 8 pages is a lot to surf through when I need to get to bed. So don't mind if I quickly ask this here: Is there a way to utilize Permissions so Admins can bypass this plugin? I like to prevent players from abusing cheats, but I don't want to limit myself as the admin.

    I saw your list of permission nodes and what they do, but I'm confused; they only seem to "allow" logging into the text file. Is there a permission to allow a player to bypass this plugin?

    Thanks in advance! So excited about this plugin!
     
  3. Offline

    Evenprime

    How were the people teleported? Any specific plugin used for that or builtin server commands? Do you get any logs from my plugin in those cases, like violation messages?

    Edit: http://forums.bukkit.org/threads/players-going-invisible-after-teleport.5699/ maybe that is still a problem (you can find more similar stories by searching for "invisible after teleport")? Anybody know if this has officially been fixed by Minecraft already? /Edit

    The first fix by bukkit for the dupebydeath was broken. It deleted the player inventory itself instead of the contents of the players inventory. Therefore my plugin broke because there was nothing I could've gone through for deleting items (a situation I couldn't expect when writing that code). With the newer bukkit versions it should again work without producing errors, but I'll remove it anyway with the next NoCheat version.
    [MERGETIME="1299673845"][/MERGETIME]
    The first list with the "nocheat.something" are the permissions and have to be put into your permissions file to allow certain groups/people to bypass the checks. E.g. To allow all people of the group "Moderators" to fly, add the permission "nocheat.moving" to their other permissions.

    The second is the config file "nocheat.yml" of my plugin that allows you to specify how each check should work, what should be logged and where and what checks should be (in)active globally.
     
  4. Offline

    CyborgOne

    Code:
    2011-03-09 14:42:43 [SEVERE] Could not pass event ENTITY_DEATH to NoCheatPlugin
    java.lang.NoSuchMethodError: org.bukkit.inventory.ItemStack.equals(Lorg/bukkit/inventory/ItemStack;)Z
    	at cc.co.evenprime.bukkit.nocheat.checks.DupebydeathCheck.playerDeath(DupebydeathCheck.java:34)
    	at cc.co.evenprime.bukkit.nocheat.listeners.NoCheatEntityListener.onEntityDeath(NoCheatEntityListener.java:16)
    	at org.bukkit.plugin.java.JavaPluginLoader$39.execute(JavaPluginLoader.java:361)
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
    	at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:113)
    	at net.minecraft.server.EntityLiving.a(EntityLiving.java:393)
    	at net.minecraft.server.EntityHuman.a(EntityHuman.java:378)
    	at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:139)
    	at net.minecraft.server.EntityMonster.a(EntityMonster.java:101)
    	at net.minecraft.server.EntityCreature.c_(EntityCreature.java:63)
    	at net.minecraft.server.EntityLiving.q(EntityLiving.java:649)
    	at net.minecraft.server.EntityMonster.q(EntityMonster.java:30)
    	at net.minecraft.server.EntityZombie.q(EntityZombie.java:35)
    	at net.minecraft.server.EntityLiving.f_(EntityLiving.java:231)
    	at net.minecraft.server.EntityMonster.f_(EntityMonster.java:34)
    	at net.minecraft.server.World.a(World.java:1011)
    	at net.minecraft.server.WorldServer.a(WorldServer.java:53)
    	at net.minecraft.server.World.f(World.java:993)
    	at net.minecraft.server.World.d(World.java:970)
    	at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:354)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
    
    with current CB Build: 522
    and noCheat V0.6.4
     
  5. Offline

    Evenprime

    Probably the strangest error message I have seen in the last years: Java claiming that the object of type ItemStack doesn't have the method "equals". It's funny because every object in Java has the method "equals(Object)", always. Probably bukkit does some weird stuff with reflection that causes this problem. I'm currently at work. I will upload the new version in about 3 hours when I'm done here and tested it a bit.

    For now you can just deactivate the check completely by either giving all players the permission nocheat.dupebydeath or preferably setting the check in the nocheat.yml config file to "false".
    [MERGETIME="1299693221"][/MERGETIME]
    Version 0.6.5 is online.

    It features a lot of changes and I tested it a while now and hope no serious bugs slipped through:
    Moving check:
    - much better detection of ledges when sneaking onto them
    - reset players to their last place with ground contact (e.g. when flying) instead of just somewhere they have been shortly before. This closes the loophole I mentioned earlier.
    - less log spam by only printing the summary messages if a player stopped violating the check for about 2 seconds.

    Plus I removed the now obsolete itemdupe check.

    I think I finally got the ledge detection (almost) right. There are still some cases where it will fail (especially if you are close to the 0,0 coordinate) due todouble precision operations getting a bit unreliable for my needs.
     
    M1sT3rM4n likes this.
  6. Offline

    Racha

    what i need to do, to speedhacker cant move, when using speed?
     
  7. Offline

    Evenprime

    Replace this part of the "nocheat.yml" config file:
    Code:
    speedhack:
        limits:
            low: 30
            med: 45
            high: 60
        action:
            low: loglow
            med: logmed
            high: loghigh
    
    with this (be careful to keep the indentation correct. It has to be four spaces per indentation level):

    Code:
    speedhack:
        limits:
            low: 30
            med: 45
            high: 60
        action:
            low: loglow reset
            med: logmed reset
            high: loghigh reset
    
    Please note that detecting speedhack takes up to 2 seconds. Only after that time you'll see the player getting moved back to where he came from (for as long as he keeps speedhacking).
     
  8. Offline

    M1sT3rM4n

    You should have seen how bad a player raged on my server. Simply brilliant!
     
  9. Offline

    tremor

    I am having problems with multiworld support. I am using Essentials plugin with a nether world... using the command /world to transport to the nether.. works fine for me. Using /world as a lower rank that is monitored by NoCheat triggers a moving violation and resets the player to the normal world... not allowing them to go to the nether. Any ideas?
     
  10. Offline

    Evenprime

    yes, I have an idea. I'll see if I can put together something that should fix that. Shouldn't be difficult.
    [MERGETIME="1299826090"][/MERGETIME]
    I think I fixed the problem.

    Version 0.6.6:

    - "Moving" between worlds doesn't get checked by the plugin anymore
    - Teleports not done by my plugin will discard the "setback" coordinates (used for the "reset" functionality of speedhack and moving checks) and therefore prevent players from accidentially getting teleported away again.
    - EDIT: Also tested it with newest RB #531. I don't use any features of bukkit specific to that version, so it should still work with older RBs.
    [MERGETIME="1299830890"][/MERGETIME]
    Version 0.6.7

    - Fixed a potential exploit that would've allowed players to fly/speedhack immediately after getting teleported without getting "reset" for doing so (they would've still been logged though).
    - Fixed a potential nullpointer exception: I'm not sure if that could happen at all (it would need a move and teleport event to be processed simultaneously in a very specific way), but better fixing a nonissue than not fixing an issue.
     
  11. Offline

    Grum Bukkit Team Member

    For the 'air check'; you can optimize that to:

    Code:
    if (event.getBlockAgainst().getType() == Material.AIR)
        action(NoCheatConfiguration.airbuildAction, event);
    Should be slightly superior than aimlessly checking all blocks around the block placed :)
     
  12. Offline

    GmK

    Looks like a fantastic plugin - thanks for the hard work.

    Am not sure if this has been answered in one of the pages before: Is there any way you can add a multiworld setting which lets you select which worlds to monitor? Theres a world I want people with Zombe to be able to fly, but there is another one where they shouldnt.
    Would be lovely if this is something that can be done!
     
  13. Offline

    Evenprime

    I can't believe I didn't see the "getBlockAgainst()" method. Indeed much better and will be changed with the next update. :)

    Currently there is no way to have seperate rules for different worlds. But I could implement it. Maybe I should use the current config file as default settings and give the option to override these with world-specific config files? I'll see what I can do.
     
  14. Offline

    Racha

    How to make it like they totally cant do anything when cheating, they can fly up to 10 blocks ;/
     
  15. Offline

    Evenprime

    You can try to set the value "freemoves" in the config file to 5 (current lower limit) instead of 10 (previous lower limit) if you haven't done that already. I'm experimenting a bit if the changes I made in the last few versions of my plugin reliably prevent people from getting stuck, which was the reason why I introduced those free moves originally.
     
  16. Offline

    tremor

    You shouldn't need to do this!!! Both permissions and group manager (along with Essentials) allow for setting world specific permissions. The server admin just needs to set his permissions up correctly, giving usergroups in his various multiworlds the proper NoCheat.PERMISSION as needed in their config.yml for whichever permissions plugin they use.
     
  17. Offline

    GhostToast

    original post indicates release of .6.7 but download link claims to be for .6.6
     
  18. Offline

    Evenprime

    Thanks for telling me. The link led to the 0.6.7 version, I just forgot to update the text.
     
  19. Offline

    GhostToast

    i assumed that was the case. thanks for this awesome plugin!
     
  20. Offline

    ViralNihility

    2011-03-11 12:50:52 [SEVERE] Could not pass event PLAYER_MOVE to NoCheatPlugin
    while parsing a block mapping
    in "<reader>", line 95, column 9:
    group: Admin
    ^
    expected <block end>, but found BlockMappingStart
    in "<reader>", line 98, column 10:
    permissions:
    ^

    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:576)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:228)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
    at org.bukkit.util.config.Configuration.load(Configuration.java:73)
    at com.nijiko.permissions.Control.load(Control.java:147)
    at com.nijiko.permissions.Control.loadWorld(Control.java:111)
    at com.nijiko.permissions.Control.permission(Control.java:301)
    at com.nijiko.permissions.Control.has(Control.java:264)
    at cc.co.evenprime.bukkit.nocheat.NoCheatPlugin.hasPermission(NoCheatPlugin.java:230)
    at cc.co.evenprime.bukkit.nocheat.checks.SpeedhackCheck.check(SpeedhackCheck.java:25)
    at cc.co.evenprime.bukkit.nocheat.listeners.NoCheatPlayerListener.onPlayerMove(NoCheatPlayerListener.java:37)
    at org.bukkit.plugin.java.JavaPluginLoader$8.execute(JavaPluginLoader.java:165)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:225)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:115)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.a(SourceFile:230)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:70)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:338)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:252)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  21. Offline

    Evenprime

    It seems like you have an error somewhere in your permissions file, which causes the Permissions plugin to fail to retrieve information from that file.
    [MERGETIME="1299879835"][/MERGETIME]
    You can check if the content of your permissions file is formatted correctly by copy-pasting it in here: http://yaml-online-parser.appspot.com/ and then pressing CTRL+Enter. This may help you find the problem. Alternatively make sure you are using a non-broken version of Permissions (there was a broken version recently, check out the Permissions plugin thread if someone can help you out).
     
  22. Offline

    ViralNihility

    That's the part that the error is located, though I'm not sure what's wrong. Care to enlighten me?

    I've checked Permissions already, as well as the config file.
     
  23. Offline

    dew

    Any way to add detection or prevention of changing all signs on a server?
     
  24. Offline

    _Zw_

    Does the new one work with 493?
    Or what version sould I use for it?
     
  25. Offline

    Bill Warner

    Only reporting this just in case, not sure if it was this addon or what: (1.6.3 updating tonight)

    Code:
    10:59:20 [SEVERE] 10:59:20 [SEVERE] NC: Moving violation: Boabnon from (6.69531, 67.00000, 1.18463) to (761.50
    000, 101.00000, -94.50000)
     
    10:59:40 [WARNING] Can't keep up! Did the system time change, or is the server overloaded?
    10:59:42 [SEVERE] 10:59:42 [SEVERE] NC: Boabnon sent 214 move events, but only 70 were allowed. Speedhack?
     
    10:59:51 [SEVERE] 10:59:51 [SEVERE] NC: Boabnon sent 144 move events, but only 70 were allowed. Speedhack?
     
    10:59:52 [SEVERE] 10:59:52 [SEVERE] NC: Boabnon sent 267 move events, but only 70 were allowed. Speedhack?
     
    10:59:53 [SEVERE] 10:59:53 [SEVERE] NC: Boabnon sent 241 move events, but only 70 were allowed. Speedhack?
     
    >Segmentation fault
    
     
  26. Offline

    Senzuri

    I don't know if you've seen this one before, but it might be worth integrating into your great plugin.

    Today my server was attacked by people able to spoof their name, you could ban their IP to stop them, but you couldn't ban by name because they would just keep changing it.

    It looks like this: (Using David as an example)

    David&anythinghere

    Where David is his minecraft name and "&anythinghere" can be changed to avoid bans.

    Thanks let me know what you think.
     
  27. Offline

    PatrickFreed

    is this still "use at your own risk" or is it a fully functional plugin?
     
  28. Offline

    NEO

    How accurate is this? I got 3 moving violations from a single person in a row, they say they weren't doing anything. TNT is disabled on my server, and i read the ledge issue is fixed. Im just wondering if these 3 move violations were possibly false positives.
     
  29. Offline

    Evenprime

    Without the original indentation it's hard to tell. I'd guess (from the error message) that the line "permissions:" is indented 1 space too far. Could you post that again within CODE tags such that indentation doesn't get lost?
    I thought Bukkit has fixed that recently. At least there was a patch for bukkit #522 named "Fixed sign exploit" https://github.com/Bukkit/CraftBukkit/commit/4e9d448ec9a2ae701179089260255a7a8dd48aeb

    You should be able to use the newest version. The v0.6.2 was the last that "officially" supported 493, but I think I didn't use any features that are build 494+ only. If the plugin loads without giving any errors while loading, it will most likely work.
    Looks serious. Are you that player? Do you know what the player did at 10:59:20 (use some kind of teleport or a portal)? From the coordinates I'd guess he was close to spawnpoint at that moment. Anyway he moved a really, really huge distance. That seems to have caused the server to lag for ~ 20 sec (maybe a lot of new chunks had to be loaded/generated for his target location?). The speedhack warnings are probably the result of that huge lag, because the server had to work through the message queue that built up during that time and that may look like somebody is speedhacking. The segmentation fault at the end also points to some serious problem. Maybe you ran out of memory at that time?

    This is all just guessing, so I may be wrong.
    Bukkit fixed that with build #521 https://github.com/Bukkit/CraftBukkit/commit/14d0be752c85508e38e00fdb55e62b3ff606e1e7, at least they claim they fixed it. If it still happens, they are most likely interested.
    Technically it will always be "use at your own risk" (I won't take liability for it in any way). But it is pretty functional now. The worst that happens is currently false positives in some rare cases. You can choose if the plugin should only log or take actions in case of violations, so you may want to try it at first only with logging.

    But even with the "reset" functionality active the worst the plugin does in those false positive cases is move players back a bit (getting completely stuck in a endless loop of setbacks should be impossible by now). I'll probably add a section to the first post called "Identifying false positives" or something to help people differentiate between real violations and likely false positives in the logs.

    There is still a bug that players may go invisible after getting teleported, but I'm 99% sure its not my fault but rather a bug in Minecraft. If someone knows what exactly causes that invisibilty I'd be very interested.

    It's not perfect. The latest version features the best technically possible solution I could come up with for the ledge issue. The problem is that the game itself isn't always sure about wether a player is still on the ledge or falling down. Standing at exactly the same coordinates may cause you falling down one time and keep you standing above another time.

    All violations have a level, INFO, WARNING and SEVERE. False positives are normally only at the INFO level. You can identify the ledge false positives by the coordinates that get logged. If one of the x,z-coordinates is "?.3000000something" or "?.6999999something" its most likely a false positive.
     
  30. Offline

    PatrickFreed

    Yeah the invisibility glitch has nothing to do with this plugin. Everyone gets it if they have /tp
     
  31. Offline

    Bill Warner

    I figured it was serious and it's why I posted it. It happened while I wasn't watching the server. Boabnon was a random person logging in. I use Guestprev to thwart griefing by random people I'm guessing he was using a speed hack and everything you mentioned above is probably what happened.
     

Share This Page