Anti cheating plugin for Minecraft (Bukkit/Spigot).
Go to file
asofold 8230a13fc0 [BLEEDING][BREAKING] Rework much of y-axis handling.
* In addition to the "distance from set-back" check, we have a check of
the per-move distance for in-air checks, taking account of friction.
* In-air and liquid checks should consume vertical velocity once needed.
* Model vertical velocity "exact", i.e. positive and negative, use an
entry once a sub-check fails, quite strict invalidation of not matching
values, matching against the y-distance directly.
* Vertical accounting has been sharpened for the moment. The new
per-move checking might make it superfluous.
* Remove MediumLiftOff in favor of a LiftOffEnvelope carrying basic
lift-off max-gain/max-height/max-phase, enabling to distinguish between
normal lift-off and liquid near ground.
* Rename others (e.g. sfLastYDist -> lastYDist). Thus breaking internal
naming, adding velocity via MovingData still works, but should behave
slightly differently.
* Fixes (waterwalk with head obstructed, resetting of sfDirty, possibly
others).

Issues.
* Edge cases with velocity, water.
* Lava needs friction, at least with velocity.
* Lostground_edge(ydist < 0.0) ->
bunny with yDistance > 0.0. Need more flags or better model for keeping
past moves information.
* Plain ground misses (layered snow).
* lostground with yDist == 0.0, then seemingly in-air yDist== 0.0, then
bunny/lifft-off (similar to above). Needs better modeling of past moves,
because several lostgorund cases mean "the move has been on ground".
Also includes geting the distance to ground for hack-proof set-back-y.
* Vertical velocity is now matched with a margin, because the client
seems to add randomly.
* Possibly new loopholes/exploits (extreme large moves?).
* Cleanup pending.
2015-09-21 00:27:33 +02:00
NCPBuildBase Building NCP: Build without cbdedicated by default. 2015-08-01 00:52:06 +02:00
NCPCommons Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatBukkit Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2512 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2545 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2602 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2645 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2691 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2763 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2794 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2808 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2882 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB2922 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB3026 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB3043 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCB3100 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatCBDev Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatGlowstone Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatProtocolLib Do check for the other types of flying packets. 2015-09-07 01:11:55 +02:00
NCPCompatSpigotCB1_8_R1 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatSpigotCB1_8_R2 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCompatSpigotCB1_8_R3 Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
NCPCore [BLEEDING][BREAKING] Rework much of y-axis handling. 2015-09-21 00:27:33 +02:00
NCPPlugin [BREAKING] Group several classes into sub packages for moving. Renames. 2015-09-13 14:39:25 +02:00
NoCheatPlus Use tabs for all the pom.xml. 2015-08-01 00:58:33 +02:00
LICENSE.txt Put license on top level. 2013-01-12 01:04:23 +01:00
pom.xml Building NCP: Build without cbdedicated by default. 2015-08-01 00:52:06 +02:00
README.md Set the string property cbdedicated to true and use -P all on Jenkins. 2015-08-01 01:31:38 +02:00

NoCheatPlus

NoCheatPlus is a fork of the famous anti-cheat plugin [NoCheat] (http://dev.bukkit.org/server-mods/nocheat/) created by [Evenprime] (https://github.com/Evenprime). NoCheatPlus attempts to enforce "vanilla Minecraft" mechanics, as well as preventing players from abusing weaknesses in Minecraft or its protocol, making your server more safe. Organized in different sections, various checks are performed to test players doing, covering a wide range including flying and speeding, fighting hacks, fast block breaking and nukers, inventory hacks, chat spam and other types of malicious behaviour. For a more complete list have a look at the always outdated [Features Page] (https://github.com/asofold/NCPDocs/blob/master/Features.creole).

Installation

Tips

Compiling NoCheatPlus

  • We use [Maven] (http://maven.apache.org/download.cgi) 3 to handle the dependencies.
  • You can compile it with this Maven goal: mvn clean package, if you don't want any dedicated CraftBukkit modules, or if you are lacking the jar files. If you do have all the dependencies, you can set the parameter cbdedicated to true and activate the profile all adding -P all to the goals (e.g. on Jenkins, for some setups setting the property may suffice). If you want to build only using the compat module for your current server version, you can remove all the unneeded module references from the root pom.xml and the corresponding dependencies from NCPPlugin/pom.xml. Custom modules not put under the group id fr.neatmonster might need to be added to the includes section in NoCheatPlus/pom.xml as well.
  • Jar files for the dedicated compat modules, which your local maven repository might be missing, can also be installed manually. Example for Eclipse with embedded maven: Add a new maven build run configuration, name it appropriately, e.g. Install CB 1.7.5. Set goals to: install:install-file -Dfile=<PATH TO JAR> -DgroupId=org.bukkit -DartifactId=craftbukkit -Dversion=1.7.5-R0.1-SNAPSHOT -Dpackaging=jar On Windows the might look like: X:\...\craftbukkit\3042\craftbukkit-1.7.5-R0.1-20140408.020329-16.jar To let it run you might have to set the base directory, e.g. to ${workspace_loc}, it does not seem to have significance. Do set the correct version alongside the file name. On newer version of maven, you might do with much simplified goals, because the pom inside the jars are parsed.
  • NoCheatPlus is compiled for Java 6.

Project

Download

Support and Documentation

Developers

Related