11package cqb13 .NumbyHack .mixins .meteor ;
22
33import meteordevelopment .discordipc .RichPresence ;
4+ import meteordevelopment .meteorclient .systems .modules .Category ;
45import meteordevelopment .meteorclient .systems .modules .misc .DiscordPresence ;
56import org .spongepowered .asm .mixin .Mixin ;
7+ import org .spongepowered .asm .mixin .injection .Inject ;
68import org .spongepowered .asm .mixin .injection .*;
79import org .spongepowered .asm .mixin .injection .invoke .arg .Args ;
10+ import meteordevelopment .meteorclient .systems .modules .Module ;
11+ import meteordevelopment .meteorclient .settings .*;
12+ import org .spongepowered .asm .mixin .injection .At ;
13+ import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
814
915@ Mixin (value = DiscordPresence .class , remap = false )
10- public class DiscordPresenceMixin {
16+ public abstract class DiscordPresenceMixin extends Module {
17+ private SettingGroup numby$sgNumby ;
18+ private Setting <Boolean > numby$numbyImage ;
19+ private Setting <Boolean > numby$numbyImageText ;
20+ private Setting <Boolean > numby$numbyDetails ;
21+
22+ public DiscordPresenceMixin (Category category , String name , String description ) {
23+ super (category , name , description );
24+ }
25+
26+ @ Inject (method = "<init>" , at = @ At ("TAIL" ))
27+ private void constructor (CallbackInfo ci ) {
28+ numby$sgNumby = settings .createGroup ("Numby Presence" );
29+ numby$numbyImage = numby$sgNumby .add (new BoolSetting .Builder ()
30+ .name ("numby-image" )
31+ .description ("Shows the Numby Hack logo as the large image." )
32+ .defaultValue (true )
33+ .build ()
34+ );
35+ numby$numbyImageText = numby$sgNumby .add (new BoolSetting .Builder ()
36+ .name ("numby-image-text" )
37+ .description ("Displays Numby Hack text as the large image text." )
38+ .defaultValue (true )
39+ .build ()
40+ );
41+ numby$numbyDetails = numby$sgNumby .add (new BoolSetting .Builder ()
42+ .name ("numby-details" )
43+ .description ("Shows the current module in use as the details." )
44+ .defaultValue (true )
45+ .build ()
46+ );
47+ }
48+
1149 @ ModifyArg (method = "onActivate" , at = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/DiscordIPC;start(JLjava/lang/Runnable;)Z" ))
1250 private long modifyAppId (long appId ) {
13- return 943264770642034708L ;
51+ if (numby$numbyImage .get ()) {
52+ return 943264770642034708L ;
53+ }
54+ return appId ;
1455 }
1556
1657 @ ModifyArgs (method = "onActivate" , at = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/RichPresence;setLargeImage(Ljava/lang/String;Ljava/lang/String;)V" ))
1758 private void modifyLargeImage (Args args ) {
18- args .set (0 , "large" );
19- args .set (1 , "Numby Hack !" );
59+ if (numby$numbyImageText .get ()) {
60+ args .set (0 , "large" );
61+ args .set (1 , "Numby Hack!" );
62+ }
2063 }
2164
2265 @ Redirect (method = "onTick" , at = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/RichPresence;setState(Ljava/lang/String;)V" , ordinal = 0 ))
2366 private void modifyState (RichPresence instance , String state ) {
24- instance .setDetails (state ); //this is stupid -Crosby
67+ if (numby$numbyDetails .get ()) {
68+ instance .setDetails (state ); //this is stupid -Crosby
69+ }
2570 }
2671
2772 @ ModifyArg (method = "onTick" , at = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/RichPresence;setDetails(Ljava/lang/String;)V" , ordinal = 1 ))
2873 private String modifyDetails (String details ) {
29- return "Number81 on top!" ;
74+ if (numby$numbyDetails .get ()) {
75+ return "Number81 on top!" ;
76+ }
77+ return details ;
3078 }
3179
3280 @ Redirect (method = "onTick" , at = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/RichPresence;setState(Ljava/lang/String;)V" ), slice = @ Slice (from = @ At (value = "INVOKE" , target = "Lmeteordevelopment/discordipc/RichPresence;setDetails(Ljava/lang/String;)V" , ordinal = 1 )))
3381 private void deleteMethods (RichPresence instance , String state ) {}
34- }
82+ }
0 commit comments