NoCheatPlus / Issues

Issues managment for the NoCheatPlus project.
13 stars 9 forks source link

Check option(s) is/are being ignored #526

Open ArtelGG opened 6 years ago

ArtelGG commented 6 years ago

Short description of the issue.

An option (or two) in the configuration file (config.yml) is being completely ignored.

Complete output of the ncp version command (please prefer text here).

[20:55:06 INFO]: ---- Version information ----
[20:55:06 INFO]: #### Server ####
[20:55:06 INFO]: git-PaperSpigot-"4c7641d" ~MC: 1.8.8~
[20:55:06 INFO]:   detected: 1.8.8
[20:55:06 INFO]: #### NoCheatPlus ####
[20:55:06 INFO]: Plugin: 3.16.1-SNAPSHOT-sMD5NET-b1143
[20:55:06 INFO]: MCAccess: 1.8.4-1.8.8 / Spigot-CB-1.8_R3
[20:55:06 INFO]: Features:
[20:55:06 INFO]:   blocks: BlocksMC1_4 | BlocksMC1_5 | BlocksMC1_6_1 | BlocksMC1_7_2 | BlocksMC1_8
[20:55:06 INFO]:   checks: FastConsume | Gutenberg | AttackFrequency | FlyingFrequency | KeepAliveFrequency
[20:55:06 INFO]:   defaults: pvpKnockBackVelocity
[20:55:06 INFO]:   packet-listeners: UseEntityAdapter | MovingFlying | OutgoingPosition | KeepAliveAdapter | SoundDistance | CatchAllAdapter
[20:55:06 INFO]: Hooks: AllViolations~NCP~ 1.0
[20:55:06 INFO]: #### Related Plugins ####
[20:55:06 INFO]: ProtocolLib v4.4.0-SNAPSHOT-b390 | ViaVersion v1.3.0

How to reproduce the issue (is it random / always happens / side conditions)?

The following options must be "true" in the configuration file (config.yml) and it will still continue to check even though you're both in creative mode, and flying.

checks:
moving:
creativefly:
ignoreallowflight: true
ignorecreative: true

Have you made any (noteworthy) changes to the default configuration of NCP?

Yes, I'm using MarkElf's configuration, however, this doesn't affect the reported issue as it's being completely ignored rather than a configuration fault.

Do you run any other special plugins that affect game mechanics next to NC+ (adding skills, machines, adding/changing blocks, other anti cheating)?

No.

Provide additional information, such as error/debug/violation logs.

N/A

MarkElf commented 6 years ago

Can you clarify what it is that you're trying to do that is conflicting with the setting?

Leaving this here for reference: https://github.com/NoCheatPlus/Docs/wiki/%5BMoving%5D-Creativefly

ArtelGG commented 6 years ago

https://youtu.be/x8uIq4cr58c Uploaded a video to explain it better, I remember this setting would ignore this correctly not too long ago, so I'm assuming a recent change may have affected it.

asofold commented 6 years ago

Until i've checked out videos, let's clarify:

Other conditions that force use of the CREATIVEFLY check (probably not a complete list, docs TBD):

ArtelGG commented 6 years ago

I remember having both of those settings enabled it would ignore people using fly boosters in creative mode. This was a long time ago though so I guess it could be long gone with no return in sight.

asofold commented 6 years ago

It's bee na while, but indeed i added forcing to run creativefly, in case a player is set to be flying server side.

Not 100% sure where 'boosters' or whichever feature in question is conflicting now - server side features may be fixable (debug logging helps: https://github.com/NoCheatPlus/Docs/wiki/Debugging#on-the-fly-debug-output-for-individual-players), special clients may be difficult.

(Haven't watched the video yet.)

ArtelGG commented 6 years ago

The one I'm referencing right now is a legit mod called "ToggleSneak" (There are other mods such as "BetterSprinting". I'm sure there are others but these ones are the only ones I can think off of the top of my head that I know are 100% legit.). You can only use the fly boost in creative mode so naturally, I'm trying to make it ignore it so they can use it as I don't mind whatsoever. The video just shows the fly boost working then not working after I enable the creativefly check even though both of the settings to ignore flying and creative are enabled.

Do you remember the build number/version you added this so I could downgrade until this gets resolved?

I'd also like to point out if I try to go horizontally I never flag a check no matter how much I get rubberbanded but if I go vertically I get flagged for ExtraElytra (Which I find especially odd because I'm on 1.8.8).

asofold commented 6 years ago

@ArtelGG By no means downgrade :), we should find out how to adjust things to make some flying boost possible. It might be possible by configuration or perhaps relatively simple code changes suffice to make it possible.

The build with which the change had been introduced, was build number 581, july 2013.

581 (Jul 15, 2013 10:30:22 PM)

(...) Also check for player.isFlying. (commit: 80f58d9) — asofold / githubweb (...)

So in this case we should really have a look what's the problem here...

Best ensure the [tags] part is inside the creativefly related log messages, or make a per player debug log right away: https://github.com/NoCheatPlus/Docs/wiki/Debugging#on-the-fly-debug-output-for-individual-players

ArtelGG commented 6 years ago

They both (vertical and horizontal) get set back, however, only vertical actually flags a check (ExtraElytra). If I disable CreativeFly as a whole check fly boosting works just fine.

asofold commented 6 years ago

What's ExtraElytra?

So people are using ordinary flying or is this about flying with elytra? Flying with elytra is handled differently from ordinary flying.

(Before disabling creativefly (somewhat dangerous), i'd rather identify which flying model is used and adapt that to work with the special features.)

ArtelGG commented 6 years ago

As I said, I'm using version 1.8.8, meaning the Elytra doesn't even exist, and I'm also using MarkElf's configuration, so he could've changed language stuff. The command that's set off is notifyflyspeed1/2/3

asofold commented 6 years ago

I don't have that config, though that could/should probably be changed, if i am to look into issues based on that.

Alright 1.8.8 :) - could you briefly describe:

If it's not about preventing cheating, in terms of not allowing to fly as fast without using the boost feature, you could simply increase the allowed speeds (horizontal and vertical) for the creative model (creativefly section), until it works.

ArtelGG commented 6 years ago

I tested it with the default one as well and it happened the same. I don't believe it happens with just vanilla flying and holding down the sprint key, however, I don't think the fly booster enables sprinting when flying. It uses multiplier values in increments of 0.25x IIRC.

asofold commented 6 years ago

Well 0.25x is a number, you could increase the allowed horizontal and vertical speeds for the checks.moving.creativefly.model.creative section in the configuration of NCP.

If they change the increments by 0.25 it'll not just be 25% more speed, but perhaps double ... you could try to simply double the allowed vertical/horizontal speed until it works - from there on you could reduce a little bit to between the last borders and nail it down, or just go with what works.

A cheat client could go those speeds permanently then. If that's a feature not meant to be frequently used, we'd need to know how exactly that 'boost' is triggered (plugin command / key combination / special client ...) ~ there we'd be at changing NCP or another plugin.

ArtelGG commented 6 years ago

I don't believe we're on the same page here, it's not a matter of configuration fault, rather being an issue of a configuration option not being handled correctly. It seems something was changed to be handled in a different way and the actual boolean you're changing wasn't renamed to match it accordingly. If I called something ignorecreative I would just ignore the gamemode and return before anything is done rather than handling it as if the user was in a different gamemode when they're not.

asofold commented 6 years ago

The intention of 'ignorecreative' and 'ignoreallowflight' has always been to run the survivalfly check for supposedly ordinary moving, because survivalfly is stricter than creativefly. It never had the intention to disable the creativefly check for actually flying players.

The actual change that had been made at some point within Bukkit had been to enable the creative-style flying to survival mode, and NCP has been adapted to accomodate for that.

The reason for the 'ignorecreative' to exist at all is, that there have been creative mode servers that don't allow flying, thus we made it possible to run the survivalfly check for players in creative mode. In fact both flags are part of the decision if to run survivalfly instead of creativefly (even if they're in creative mode or are allowed 'flying' in terms of being allowed to trigger server side toggle-flight events).

For the naming i don't know how to do it much better, do you have a suggestion?

Could try to move to the survivalfly section and rename, something like:

The check names are also very old "creativefly" and "survivalfly" checks, it doesn't make all too much sense anymore and probably never did (a "fly" checkto control flying and a "fly" check to prevent flying alltogether, game modes aren't exclusive to flying/gliding/whatnot anymore anyway).

(Edited around a lot, finally the options above could be reasonable choices for renaming?)

(The creativefly docs are outdated as well.)