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

    Evenprime

    sure. Individual nodes have always worked with PEx, no matter what version.
     
  3. Offline

    RugRats

    k and
    No thats not true or I would have never of starts complaining
     
  4. Offline

    StopSpazzing

    Glad you fixed it!

    I will test it when i get a chance. Thanks for the quick fixes. :)
     
  5. Offline

    Evenprime

    No problem. I break it, I fix it. When I've more time I'll explain what the bug was and why it was so hard to find.

    Completely unrelated:

    Newest version of NoCheat is now a Maven project: https://github.com/Evenprime/NoCheat

    If you don't know what Maven is, you don't have to. It only really matters to other developers.

    PS: I'm still waiting on Bukkit before updating NoCheat for MC 1.0 versions.

    If you really want to, you can use the current version of NoCheat with that, as long as you deactivate the "godmode" check first. It is the only thing of NoCheat that will definitely not survive the version change, everything else has a high probability to still work.

    As promised, I'll now try to explain the bug you experienced in 2.16-2.16b:

    First, here is the change that fixed the problem: https://github.com/Evenprime/NoCheat/commit/d502f6647208d6cd6f780a4e72d638623a4e9f4c If you look at it, you'll see that it isn't related at all to any of the checks, which made it so hard for me to find it in the first place.

    What happened? With 2.16 I wanted to clean up my act and finally give my plugin a better, more intuitive to work with structure and at the same time reduce effort needed to update between minecraft versions or (as I plan to do) make various sub-versions that are compatible with and profit from popular mods, such as Spout. To do that, I introduced a new class "NoCheatPlayer", which wraps around a (bukkit) "Player" in combination with additional test-related data, some convenience methods to do more complicated things like getting the speed modifier that affect a player currently (e.g. because he used a potion) and a simple means of getting the configuration that is relevant for that player at the moment (based on the world he is in). Which worked great.

    I relied on the fact that each player on the server will always be represented by the same "Player" object, even if they leave the server and come back soon afterwards or change worlds and so on. Which worked as well during my tests. The bug started to appear in situations where this was no longer true and the "Player" object used to represent players would be swapped out. NoCheat would in that case use the old, no longer updated, "Player" object for many calculations (pretty much all things that started to fail: line of sight stuff, sprinting, ...), while CraftBukkit only updated the new, to NoCheat at that time invisible "Player" object instead. Afaik it is Spout that replaces the "Player" object like that and therefore caused NoCheat to fail.

    Just to be 100% clear: It's not Spouts fault, it's mine. I relied on undocumented behaviour (bad idea, I should've known better), and it came back to bite me in the ***. So now instead of using the same "Player" object all the time in my "NoCheatPlayer" class, I refresh it on each event, and therefore I'll always be working with the object that is used by CraftBukkit to represent the player atm.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  6. Offline

    Evenprime

    Look at my profile image, then look below it. You'll now find a link to my BukkitDev profile and my plugins on BukkitDev there.

    Nice :D
     
  7. Offline

    Evenprime

    https://github.com/t3hk0d3/PermissionsEx/issues/134

    It would be nice if people could test if the same happens for them. It could explain the problems people keep having with parent->child relations and PermissionsEx.

    Updated my other plugin SuperPermsTest and made new testruns: http://dev.bukkit.org/server-mods/superpermstest/pages/test-results/

    Has some interesting new results related to "old" Permissions 3 support of the new plugins.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  8. Offline

    Kane

    @Evenprime Just wanted to say Hi since your talking to your self ;) Will be testing out stuff here soon :)
     
  9. Offline

    Evenprime

    New NoCheat version 2.16d:

    • fixed compatibility with MC 1.0 versions of CraftBukkit (broken part simply gets deactivated instead of throwing tons of errors)
    • maybe fixed "can't edit config file" bug (needs testing)
    • Now we use Maven to build NoCheat and package it
    So now you can just use that with your dev builds of CraftBukkit without breaking too much. You'll get a message on startup telling you that the stuff that's not yet updated will simply be deactivated. So feel free to use this version for MC 1.0 builds.

    Also I potentially fixed a really old bug that prevented people from updating their config files. If you have/had that problem and now no longer (or still) got it, let me know.

    Interesting for people who'd like to compile NoCheat themself: It has now a pom.xml file with everything needed to use Maven to create a NoCheat.jar automatically.

    http://dev.bukkit.org/server-mods/nocheat/pages/changelog-and-downloads/

    New NoCheat version 2.17:
    • first real MC 1.0.0 version, while still fully backwards compatible to MC 1.8.1
    • Only show a warning about potentially wrong version combination of NoCheat + CraftBukkit when really necessary
    • Work in a "safe" mode if the server is running an unknown MC version

    So, found after all a way to handle 1.8.1 and 1.0.0 at the same time, so this version can be used by all of you, those who updated to dev builds and those who didn't.

    The generic "This version of NoCheat was built for CB xxxx and may break for any other version" message is gone and now replaced by a new message, that only shows up if you really use an incompatible/unknown version of MC.

    And even then the plugin should no longer break but instead work in a "safe" mode that avoids any calls that go directly to the MinecraftServer instead of Bukkit/CraftBukkit.

    Get it here as usual: http://dev.bukkit.org/server-mods/nocheat/pages/changelog-and-downloads/

    New NoCheat version 2.17a:

    • fixed default reach distances for "reach" checks to newer, bigger distances.
    • removed a debug output line I accidentially left in the code that you'd see whenever a new player is found

    Sorry for the many updates in short time, but it's a lot easier and faster for me to find these problems if I have lots of people use the plugin and report errors.

    Reach distances are now bigger to accomodate changes in Minecraft 1.0.0 and you can no longer change them in the config.txt (for now. I will give a different method to modify these that won't cause me problems when Minecraft decides to change stuff like that the next time in one of the next updates).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  10. Offline

    Evenprime

    New NoCheat version 2.17b:

    • fixed "godmode" check going on a rampage whenever a player dies and doesn't press the respawn immediatly in MC 1.0.0 versions (it's a bug in craftbukkit that prevents player.isDead() from correctly reporting the players death). This is a workaround for that bug, now using "player.getHealth() <= 0" instead.

    When a player is dead, he looks exactly like someone using that type of hack. Normally I use "player.isDead()" to decide if I should exclude the player from the check. But that method broke during Bukkits update to MC 1.0.0 for yet unknown reasons. Now I do check if the players health is lower or equal to 0 to decide if they are dead.

    Sorry for any inconvenience coming from that bug. I simply didn't expect that code to break, and by reflex I always press the "respawn" button immediatly so I never got the false messages from the "godmode" check (they only appear after 5 seconds of being dead).
     
  11. Offline

    Darcion

    2.17b ;)
     
  12. Offline

    Evenprime

    lol, yes. Too late, need sleep more.
     
  13. Offline

    MRI

    I get this error :
    Code:
    2011-11-26 17:14:04 [SEVERE] Caused by: java.lang.NullPointerException
    2011-11-26 17:14:04 [SEVERE] java.lang.reflect.InvocationTargetException
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.player.NoCheatPlayerImpl.increaseAge(NoCheatPlayerImpl.java:82)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.checks.timed.GodmodeCheck.check(GodmodeCheck.java:71)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.handleEvent(TimedEventManager.java:111)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.access$100(TimedEventManager.java:24)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager$1.run(TimedEventManager.java:83)
    2011-11-26 17:14:04 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:137)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:482)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:414)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
    2011-11-26 17:14:04 [SEVERE] Caused by: java.lang.NullPointerException
    2011-11-26 17:14:04 [SEVERE] java.lang.reflect.InvocationTargetException
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.player.NoCheatPlayerImpl.increaseAge(NoCheatPlayerImpl.java:82)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.checks.timed.GodmodeCheck.check(GodmodeCheck.java:71)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.handleEvent(TimedEventManager.java:111)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.access$100(TimedEventManager.java:24)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager$1.run(TimedEventManager.java:83)
    2011-11-26 17:14:04 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:137)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:482)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:414)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
    2011-11-26 17:14:04 [SEVERE] Caused by: java.lang.NullPointerException
    2011-11-26 17:14:04 [SEVERE] java.lang.reflect.InvocationTargetException
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.player.NoCheatPlayerImpl.increaseAge(NoCheatPlayerImpl.java:82)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.checks.timed.GodmodeCheck.check(GodmodeCheck.java:71)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.handleEvent(TimedEventManager.java:111)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager.access$100(TimedEventManager.java:24)
    2011-11-26 17:14:04 [SEVERE]     at cc.co.evenprime.bukkit.nocheat.events.TimedEventManager$1.run(TimedEventManager.java:83)
    2011-11-26 17:14:04 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:137)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:482)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:414)
    2011-11-26 17:14:04 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
    
    eccecc...
    appears only the server it's just started
     
  14. Offline

    Evenprime

    What version of CraftBukkit are you using?
     
  15. Offline

    silentdojo

    Using CB 1510, NC latest, and any of the other 1.0 builds. Some players (anyone not admin/op) when they travel to a Creative map (using MultiVerse) they cannot use Notch's flight until they relog. Any chance you'd know what's causing this?
     
  16. Offline

    Evenprime

    Just a warning. The 1.0.0 have some pretty heavy bugs in it (bugs are in Minecrafts code, not Bukkits, but affect both) that allow all kinds of extreme exploits that will NOT be detected by NoCheat. I'll have to see if I can fix some of those.

    I don't know. Is it that they can't activate Notch's flight (double spacebar doesn't activate fly-mode), or that they are prevented from flying with it?
     
  17. Offline

    MRI

    I use b1509
     
  18. Offline

    Evenprime

    NoCheat 2.18:
    • removed godmode, because after further investigation it seems simply fubar
    • added chat.empty check to identify players that send empty messages (not possible in normal minecraft) and kick them immediatly
    • tweaked config files a bit, to produce an additional and more useful error message in some cases and prevent complete wiping of the file in a certain case
    Also, you'll encounter loads of new hacks in 1.0.0 due to the minecraft server not correctly setting the "dead" flag for dead players, leading to all kinds of ghost, godmode, etc. hacks working suddenly that didn't before.

    I'm working on a patch for CraftBukkit to fix that. EDIT: Found a pull request that would likely fix most of these problems.
     
  19. Offline

    Fruitcakes

    I have had a huge problem with NoCheat, rendering me incapable of playing the game. I get a similar, if not the same error message whenever I move.
    NC: [PlayerName] failed moving.morepackets: Sent (#) more packets than expected. Total Violation Level (#.)

    I get this error whenever I move several blocks, and it's teleporting me back, whether it displays the error or not. I haven't been able to play on any NoCheat servers since yesterday, when it started.
    I really hope there's a fix, I redownloaded, reinstalled my client, and even played on the Browser at Minecraft.net
     
  20. Offline

    Evenprime

    I don't know why there'd be a problem for you specifically. If it affects players, it should affect all players the same way. That check tests if a player sends more "Move" packets than usual. Normal minecraft clients limit themself to sending 20 packets per seconds normally, independent of the players framerate. Maybe you have some network component that interfers with packet transfer? Some overzealous firewall or something like that which heavily delays or maybe even duplicates packets?

    You could try running a local bukkit server with NoCheat and see if the problem still happens.

    EDIT: Are [PlayerName] and (#) meant as a placeholder for the actual message? Can you give an example of an actual message? Did the admins tell you that they see those messages when you play, or how do you know about them?
     
  21. Offline

    Fruitcakes

    My network has never had this problem. Yesterday when it started, it didn't affect me until about 2:30ish, and didn't work after that.

    My friend shows Nocheat notifications to everybody on the server, so that's how I first discovered it. Then I tried on another server, and the admin alerted me of the problem.

    Yeah, those are placeholders, here's one I have:
    NC: Fruitcakes failed moving.morepackets: sent 71 more packets than expected. Total Violation Level 71.

    The only bad part about this is it will ALWAYS teleport me back to where I was standing. It's frustrating to the admins, who try to help, and to me, since I can't really play at all.
     
  22. Offline

    Evenprime

    I've opened a bug report with Bukkit about the bug in MC 1.0.0 that allows people to cheat death and then walk around as an invulnerable superbeing that can still attack others, break blocks etc.

    https://bukkit.atlassian.net/browse/BUKKIT-95

    Also, I'm currently writing a temporary fix for NoCheat to fix that problem until CraftBukkit gets fixed.

    NoCheat 2.19:
    • added emergency fix for dead players becoming invincible and still being able to interact with their environment
    • walking on lily pads no longer should cause problems

    So, I've decided while I wait for CraftBukkit or Mojang to fix the bug, I'll implement a quick fix in NoCheat for now. I'll remove it as soon as CraftBukkit is able to fix the problem directly. For those who don't know, there is a bug in MC 1.0.0 that allows players to become invincible after dying and still be able to fight, dig, move around etc. This fix will, if you run a MC 1.0.0 version, stop that. It shouldn't break anything, but if you feel that it does, you can explicitely deactivate it in the config.txt (it's activated by default). NoCheat will anounce on startup if it is using this bugfix.

    Also, someone mentioned to me that lily pads cause problems, NoCheat preventing people from walking over them. Now no longer. I need to find a better way to handle various block types and their properties in future, it seems :/

    http://dev.bukkit.org/server-mods/nocheat/pages/changelog-and-downloads/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  23. Offline

    Evenprime

    Hey there, I updated my test results from my other plugin once again.

    If you were unsure about updating your permissions plugin (especially when using PermissionsEx and GroupManager) to their latest version, let me tell you: DO IT!

    Massive performance improvements and bugfixes for PermissionsEx in version 1.17, massive performance improvements in GroupManager in version 1.6.18 (for plugins that use the Permissions 3 interface, which a lot do): http://dev.bukkit.org/server-mods/superpermstest/pages/test-results/
     
  24. Offline

    RugRats

    Anti spam leave/join support?
     
  25. Offline

    Evenprime

    Just got fixed in CraftBukkit. https://github.com/Bukkit/CraftBukkit/commit/69c119d6e57504baea03cb35f38fcbe24df03122

    NoCheat 2.20:
    • make NoCheat detect the newer MC 1.0.1 versions (no warning about "unknown" bukkit version on startup)
    • new command "/nocheat playerinfo playername [filter]" allows you to see what data NoCheat collected about a player.
    • NoCheat API:

      "cc.co.evenprime.bukkit.nocheat.NoCheat: public Map<String, Object> getPlayerData(String playerName);"

      to collect that data about from a different plugin. Data values collected are all String, Integer or Long (whatever makes sense respectively). Data for a player is available for about 1 minute after he left the server, then gets discarded.
    Ok, a little update here.

    The new command "/nocheat playerinfo playername [filter]" allows you to look a bit under the hood of NoCheat. It will display data collected by NoCheat for a specific player, namely when the collecting started (usually when the player logged in or NoCheat got loaded), how often a specific check was failed and how much "violation level" (vl) the player collected in total for failing that check. The data will be available up to 1 minute after the player left the server, then it gets discarded.

    I now also provide a somewhat official API method to collect that data. All you need is get a reference to the "NoCheat" plugin and then call the method "getPlayerData(String playerName);". It will return a Map of names and values with the same data that the "playerinfo" command provides.

    Hey, I need your help with testing something:

    http://dl.dropbox.com/u/18816277/NoCheat/NoCheat_2.20special.jar

    I won't upload this version to BukkitDev (yet), but I'd like people to test it. It has a "fix" for the well known item duplication bug, that literally everybody knows but nobody dares to talk about. But I don't care that much about it, as it never worked for me in the latest MC versions anyway.

    So here it goes: When trying to use that dupe bug, you'll end up with a set of fake items and a set of normal items (some people claim that both are normal items, but that never worked for me). This change will cause the fake items to become the normal items, and the previously normal items to not appear at all. It works at a very generic level, meaning it will fix all variations of that bug at once.

    Is that an acceptable solution for those who have that dupe problem? I'm not sure. If you believe it's a good way to handle it, I can get a patch into Bukkit that does exactly the same.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
    RugRats likes this.
  26. Offline

    Thequickthinkin

    What is this dupe bug? I know one but i'm not sure if it is this one...
     
  27. Offline

    Evenprime

    Some people may get mad at me for this, but anyway:

    Go to the nether. Build a workbench. Open it, put stuff into the workbench slots. Now get somebody else to teleport you into the normal world or do it yourself, if you can. The important thing is that when you get teleported, the inventory screen is still open.

    After the teleport the items from the workbench will lie in front of you (you can pick them up), and if you visit the workbench, you'll notice that the same items are lying around there too (you can't pick them up, although there seem to be some plugin combinations that enable you to do so, effectively duplicating them).

    The patch will simply close your inventory screen before you get teleported, therefore your items will fall onto the ground where the workbench is, and you'll end up in the normal world without the items. That's how it worked in MC 1.7.3. The (fake) duplicate items started to appear with MC 1.8.0 and still appear in MC 1.0.0 versions.
     
  28. Offline

    Thequickthinkin

    People shouldn't get mad at you, if they don't want to know then just don't exploit it :p It is the same glitch I was thinking about.. I'll test this out for you now, report back in a few.
     
  29. Offline

    fffizzz

    no one has teleport on my server except mods, so no worries there.
     
  30. Offline

    Evenprime

    Every time I tried it, it didn't work anyway (duplicates not useable/can't be picked up). But people constantly PM me about it and how I should fix it, so I finally give in now and fix it. I also opened a pull request for Bukkit now which does the same thing as my fix.
     
  31. Offline

    Thequickthinkin

    I tried this glitch without the plugin installed with a fix, on a vanilla server this 'glitch' did nothing for me and just displayed a unusable item, So either this has been fixed or I did it wrong which I highly doubt...
     

Share This Page