39
39
* </code>
40
40
* </pre>
41
41
*/
42
- public class DiscordClientAction {
42
+ public final class DiscordClientAction {
43
43
44
44
/**
45
45
* Contains some of the more general actions
46
46
*/
47
- public static class General {
47
+ public enum General {
48
+ ;
49
+
48
50
public static final DiscordClientAction HOME = new DiscordClientAction ("discord://-/" );
49
51
public static final DiscordClientAction FRIENDS = new DiscordClientAction ("discord://-/" );
50
52
@@ -66,7 +68,10 @@ public static class General {
66
68
/**
67
69
* Contains guild specific actions
68
70
*/
69
- public static class Guild {
71
+ public enum Guild {
72
+ ;
73
+
74
+ @ SuppressWarnings ("squid:S1700" )
70
75
public static final DiscordClientAction GUILD =
71
76
new DiscordClientAction ("discord://-/channels/{GUILD-ID}" );
72
77
public static final DiscordClientAction GUILD_CHANNEL =
@@ -93,7 +98,9 @@ public static class Guild {
93
98
/**
94
99
* Contains actions related to channels
95
100
*/
96
- public static class Channels {
101
+ public enum Channels {
102
+ ;
103
+
97
104
public static final DiscordClientAction DM_CHANNEL =
98
105
new DiscordClientAction ("discord://-/channels/@me/{CHANNEL-ID}" );
99
106
public static final DiscordClientAction DM_CHANNEL_MESSAGE =
@@ -107,12 +114,16 @@ public static class Channels {
107
114
/**
108
115
* Contains actions related to the settings menu
109
116
*/
110
- public static class Settings {
117
+ @ SuppressWarnings ("squid:S2972" )
118
+ public enum Settings {
119
+ ;
111
120
112
121
/**
113
122
* Contains all user settings
114
123
*/
115
- public static class User {
124
+ public enum User {
125
+ ;
126
+
116
127
public static final DiscordClientAction ACCOUNT =
117
128
new DiscordClientAction ("discord://-/settings/account" );
118
129
public static final DiscordClientAction PROFILE_CUSTOMIZATION =
@@ -128,7 +139,9 @@ public static class User {
128
139
/**
129
140
* Contains all payment settings
130
141
*/
131
- public static class Payment {
142
+ public enum Payment {
143
+ ;
144
+
132
145
public static final DiscordClientAction PREMIUM =
133
146
new DiscordClientAction ("discord://-/settings/premium" );
134
147
public static final DiscordClientAction SUBSCRIPTIONS =
@@ -142,7 +155,9 @@ public static class Payment {
142
155
/**
143
156
* Contains all app settings
144
157
*/
145
- public static class App {
158
+ public enum App {
159
+ ;
160
+
146
161
public static final DiscordClientAction APPEARANCE =
147
162
new DiscordClientAction ("discord://-/settings/appearance" );
148
163
public static final DiscordClientAction ACCESSIBILITY =
@@ -179,7 +194,9 @@ public static class App {
179
194
/**
180
195
* Contains some of the more general settings
181
196
*/
182
- public static class General {
197
+ public enum General {
198
+ ;
199
+
183
200
public static final DiscordClientAction ACTIVITY_STATUS =
184
201
new DiscordClientAction ("discord://-/settings/activity-status" );
185
202
public static final DiscordClientAction ACTIVITY_OVERLAY =
@@ -191,7 +208,9 @@ public static class General {
191
208
}
192
209
}
193
210
194
- public static class Library {
211
+ public enum Library {
212
+ ;
213
+
195
214
public static final DiscordClientAction LIBRARY_GAMES =
196
215
new DiscordClientAction ("discord://-/library" );
197
216
public static final DiscordClientAction LIBRARY_SETTINGS =
@@ -204,13 +223,13 @@ public static class Library {
204
223
new DiscordClientAction ("discord://-/store/applications/{APPLICATION-ID}" );
205
224
}
206
225
207
- /* pattern for the arguments, finds everything within {} */
208
- public final static Pattern argumentPattern = Pattern .compile ("\\ {[^}]*}" );
226
+ /* pattern for the arguments, finds everything within brackets */
227
+ public static final Pattern argumentPattern = Pattern .compile ("\\ {[^}]*}" );
209
228
210
229
private final String url ;
211
230
212
231
@ Contract (pure = true )
213
- private DiscordClientAction (String url ) {
232
+ private DiscordClientAction (final String url ) {
214
233
this .url = url ;
215
234
}
216
235
@@ -235,10 +254,10 @@ public String getRawUrl() {
235
254
* @return The formatted URL as an {@link String}
236
255
* @throws IllegalArgumentException When missing arguments
237
256
*/
238
- public String formatUrl (String @ NotNull ... arguments ) {
257
+ public String formatUrl (final String @ NotNull ... arguments ) {
239
258
String localUrl = url ;
240
259
241
- for (String argument : arguments ) {
260
+ for (final String argument : arguments ) {
242
261
localUrl = argumentPattern .matcher (localUrl ).replaceFirst (argument );
243
262
}
244
263
@@ -258,7 +277,12 @@ public String formatUrl(String @NotNull... arguments) {
258
277
* @return A {@link Button} of {@link ButtonStyle#LINK} with the given label
259
278
* @throws IllegalArgumentException When missing arguments
260
279
*/
261
- public Button asLinkButton (@ NotNull String label , String ... arguments ) {
280
+ public Button asLinkButton (@ NotNull final String label , final String ... arguments ) {
262
281
return Button .link (formatUrl (arguments ), label );
263
282
}
283
+
284
+ @ Override
285
+ public String toString () {
286
+ return "DiscordClientAction{" + "url='" + url + '\'' + '}' ;
287
+ }
264
288
}
0 commit comments