AsoDesu / IslandUtils

A client-side utility mod for MCC Island
MIT License
46 stars 19 forks source link

Add custom reporting screen #103

Closed ThatGravyBoat closed 8 months ago

ThatGravyBoat commented 8 months ago

What does this PR change?

This PR adds a custom reporting screen to replace the vanilla reporting screen while on MCCI, it will also make it so if a user runs the report command as such /report user instead of throwing an error it will bring up a screen with a list of report options.

This PR also adds a new class SuggestionProvider this is similar to how the friends in-game system worked except its contained to a single class that can be reused with an easy registration of suggestion suggestion getting systems.

Showcase

Custom Reporting Screen

image

Reporting Options Screen

image

Notes

The report options do allow for translations as to make it better accessible to people playing in other languages as of right now I do not add translation keys for them in english as they are already in english.

Since this does act like the vanilla social interaction screen in the future you can add back the hide messages button(it didnt work as vanilla checks only very specific formats) if #93 is implemented as you can then toggle chat for specific players instead of global.

kezz commented 8 months ago

Hey! Hope you don't mind me poking my head in here but I am not a fan of this PR at all. Modifying and mimicking Mojang player safety features is definitely not okay, and something that we at MCC Island wouldn't be happy with at all. We don't want to confuse players, and especially don't want to be messing with player safety features either.

That being said, the idea is nice and anything that can make reporting easier is a good idea at heart!

ThatGravyBoat commented 8 months ago

Hey! Hope you don't mind me poking my head in here but I am not a fan of this PR at all. Modifying and mimicking Mojang player safety features is definitely not okay, and something that we at MCC Island wouldn't be happy with at all. We don't want to confuse players, and especially don't want to be messing with player safety features either.

That being said, the idea is nice and anything that can make reporting easier is a good idea at heart!

My reasoning for making this is that because MCCI actively doesnt support chat reporting features and does not follow a format in which Mojang can detect messages that means that you cant report messages on MCCI at all, you cant hide messages on MCCI at all, and further more MCCI uses fake players improperly meaning that the reporting menu on MCCI is filled with non existent players meaning you have 20 real players in a list of like 200 fake players, so its not screwing with player safety its adding something back that MCCI removes.

ThatGravyBoat commented 8 months ago

if you guys at MCCI do not like such features I would suggest supporting player reporting correctly using ChatType as they are very versatile meaning you can put almost anything in them while having the real message still be signed behind them

kezz commented 8 months ago

Thanks for the suggestion, we are already working on implementing player safety features with Mojang support, however it is currently very tricky on multi-proxy setups, especially those that support multiple versions, hence the delay.

However, please don't take this as us saying that we don't support making reporting easier! We definitely appreciate the intent behind this change, just don't support it being done in this way.

ThatGravyBoat commented 8 months ago

Thanks for the suggestion, we are already working on implementing player safety features with Mojang support, however it is currently very tricky on multi-proxy setups, especially those that support multiple versions, hence the delay.

However, please don't take this as us saying that we don't support making reporting easier! We definitely appreciate the intent behind this change, just don't support it being done in this way.

It can be changed to not replace the social interaction screen that is just a single line in a mixin, I assume you'd be fine with the custom screen if someone just types /report <username> as then that will allow the options to be localized into different languages allowing for more accessible reporting to those who do not speak English, this feature is something ive done for example on Hypixel now for 2-3 years now in a separate mod called ReportPlus and I have never had that issue with that and its been used by about 150k unique users monthly

ThatGravyBoat commented 8 months ago

Specifically this mixin right here can be removed and then it will no longer replace the social interaction screen https://github.com/ThatGravyBoat/IslandUtils/blob/5259c570036daf4aecc3d9d9339854310c69ce56/src/main/java/net/asodev/islandutils/mixins/reporting/MinecraftMixin.java#L16