CafeteriaGuild / DeepMobLearning-Refabricated

Rework of Deep Mob Learning mod for FabricMC
https://www.curseforge.com/minecraft/mc-mods/deep-mob-learning-refabricated
GNU Lesser General Public License v3.0
39 stars 10 forks source link

Trial cheating #87

Open Luligabi1 opened 2 years ago

Luligabi1 commented 2 years ago

At the moment, trials can be cheated in some ways with entities:

NathanPB commented 2 years ago

the ideal solution would be to break all boats on the trial area and block the placing of new ones.

Maybe if the glitch gets riding an entity (like a boat, minecart, or any other rideable thing), then let the glitch break/kill the entity

Luligabi1 commented 2 years ago

the ideal solution would be to break all boats on the trial area and block the placing of new ones.

Maybe if the glitch gets riding an entity (like a boat, minecart, or any other rideable thing), then let the glitch break/kill the entity

yeah, that'd work too and would be less likely to punish players that aren't cheating

Kluzzio commented 2 years ago

the ideal solution would be to break all boats on the trial area and block the placing of new ones.

Maybe if the glitch gets riding an entity (like a boat, minecart, or any other rideable thing), then let the glitch break/kill the entity

I think another solution you could do is create an intermediate class that extends hostileEntity and have all summoned entities from the trial be this hostileEntity. Then you can have the intermediate class override the tickRiding method (it exists base in entity) to stop the entities from riding anything. Though there may be a better way to do this, this is what I thought of and unfortunately it might require some serious rewriting.

A valid alternative though, which I do not know how easy it would be to do in kotlin is that you could create an interface for LivingEntities that allows you to do the exact same thing, and that would not need even remotely as much rewriting, just one mixin probably.