the-marenga / sf-api

Manage Shakes & Fidget characters via simple commands. Handles encryption, response parsing and everything else for you
MIT License
15 stars 3 forks source link

issue FightLightDungeon { name: dungeon, use_mushroom: false }) uses mushrooms #53

Closed tiquis0290 closed 5 months ago

tiquis0290 commented 5 months ago

when i called Command::FightLightDungeon { name: dungeon, use_mushroom: false }), and have timer it still results in fighting and using mushroom for it

the-marenga commented 5 months ago

Previously this would return an error. The actual web client still sends the same requests, but it seems like the server is now just ignoring that field. That means, this is a bug on the S&F server, not the API, which I am not able to fix. The same also seems to be true for normal arena fights, which ignore this field now. I might try reporting this bug to playagames, but I have a feeling, that they are not going to care about this.

My aproach with this API has been "trust the server" from the start:

the parsing of responses does not check if the response is the correct response to your request

The command enum stop you from shooting yourself in the foot by enforcing valid inputs via the rust type system, but any logic above that is not worth the tradeoff in terms of perf/complexity/false positive errors.

so I guess if the server gets a fighting request for no mushrooms and decides, that you should pay a mushrom regardless, then that is how it is I guess...

tiquis0290 commented 5 months ago

Thats bad, mby in next release delete the option and make it always true but that will cass problems in backcompatability, or at least warning in comment of the function will be helpfull