@@ -169,19 +169,22 @@ public void onGuildMemberNickChange(GuildMemberNickChangeEvent event) {
169
169
170
170
@ Override
171
171
public void onGuildMemberJoin (GuildMemberJoinEvent event ) {
172
+ guildMemberJoin (event .getGuild (),event .getUser ());
173
+ }
174
+ public void guildMemberJoin (Guild g , User u ){
172
175
String msg = cfg .discordWelcomeMsg ;
173
- msg = msg .replace ("$username" ,event . getUser () .getName ())
176
+ msg = msg .replace ("$username" ,u .getName ())
174
177
.replace ("$channel" ,"<#" + cfg .discordMainChID + ">" );
175
- event . getGuild () .getTextChannelById (cfg .discordMainChID ).sendMessage (msg ).queue ();
178
+ g .getTextChannelById (cfg .discordMainChID ).sendMessage (msg ).queue ();
176
179
}
177
180
178
181
@ Override
179
182
public void onGuildMemberLeave (GuildMemberLeaveEvent event ) {
180
183
guildMemberLeave (event .getGuild (),event .getUser ());
181
184
}
182
185
public void guildMemberLeave (Guild g ,User u ){
183
- String msg = "$username님이 디스코드를 나갔습니다." ;
184
- msg = msg .replace ("$username" ,u .getName ());
186
+ String msg = "$username (<@!$userid>님이 디스코드를 나갔습니다." ;
187
+ msg = msg .replace ("$username" ,u .getName ()). replace ( "$userid" , Long . toString ( u . getIdLong ())) ;
185
188
g .getTextChannelById (cfg .discordBotChID ).sendMessage (msg ).queue ();
186
189
long id = u .getIdLong ();
187
190
@@ -223,6 +226,7 @@ public void execCommand(MessageReceivedEvent event){
223
226
if (!event .getMessage ().isFromType (ChannelType .VOICE )){
224
227
User sender = event .getAuthor ();
225
228
String content = event .getMessage ().getContentRaw ();
229
+ Guild guild = event .getGuild ();
226
230
/*
227
231
Auth command
228
232
*/
@@ -236,12 +240,27 @@ public void execCommand(MessageReceivedEvent event){
236
240
if (roles .size () != 1 ){
237
241
event .getChannel ().sendMessage ("[Config fail] No roles found / Too many roles at " + cfg .discordToRolesName ).queue ();
238
242
return ;
243
+ }else {
244
+ toRole = roles .get (0 );
239
245
}
240
246
// check exists
241
247
if (authlist .hadAuth (user )){
242
248
event .getChannel ().sendMessage (String .format ("이미 인증이 완료된 디스코드 아이디(%s)입니다. " ,authlist .list .get (user .userID ))).queue ();
243
249
return ;
244
250
}
251
+ roles = guild .getMember (sender ).getRoles ();
252
+ boolean need = true ;
253
+ ArrayList <String > names = new ArrayList <>();
254
+ for (Role role : roles ){
255
+ if (!role .getName ().equals ("@everyone" )){
256
+ need = false ;
257
+ names .add (role .getName ());
258
+ }
259
+ }
260
+ if (!need ){
261
+ event .getChannel ().sendMessage (String .format ("이미 다른 권한(%s)을 부여받았습니다." ,String .join ("," ,names ))).queue ();
262
+ return ;
263
+ }
245
264
// receive auth command
246
265
String [] split = content .split (" " );
247
266
user .saidChannelID = event .getTextChannel ().getIdLong ();
@@ -285,12 +304,29 @@ public void execCommand(MessageReceivedEvent event){
285
304
}
286
305
}
287
306
if (content .startsWith ("!emuWelcome" ) && cfg .trustedUsers .contains (sender .getIdLong ())){
288
- String msg = cfg .discordWelcomeMsg ;
289
- msg = msg .replace ("$username" ,"<@!" + event .getAuthor ().getIdLong () + ">" )
290
- .replace ("$channel" ,"<#" + cfg .discordMainChID + ">" );
291
- event .getGuild ().getTextChannelById (cfg .discordMainChID ).sendMessage (msg ).queue ();
307
+ guildMemberJoin (guild ,sender );
292
308
}else if (content .startsWith ("!emuExit" ) && cfg .trustedUsers .contains (sender .getIdLong ())){
293
309
guildMemberLeave (event .getGuild (),event .getAuthor ());
310
+ }else if (content .startsWith ("!emuNewbie" ) && cfg .trustedUsers .contains (sender .getIdLong ())){
311
+ authlist .list .remove (sender .getIdLong ());
312
+ authlist .save ();
313
+ new GuildController (guild ).removeRolesFromMember (guild .getMember (sender ),guild .getMember (sender ).getRoles ()).queue ();
314
+ event .getTextChannel ().sendMessage ("[디버그] 싱싱한 뉴비가 되었습니다." ).queue ();
315
+ }else if (content .startsWith ("!getnaver" ) && content .split (" " ).length >= 2 ){
316
+ String name = content .split (" " )[1 ];
317
+ List <Member > members = event .getGuild ().getMembers ();
318
+ long id = -1 ;
319
+ for (Member m : members ){
320
+ if (m .getEffectiveName ().equals (name )){
321
+ id = m .getUser ().getIdLong ();
322
+ break ;
323
+ }
324
+ }
325
+ if (id >= 0 && authlist .list .containsKey (id )){
326
+ event .getTextChannel ().sendMessage (String .format ("%s님의 아이디는 %s 입니다." ,name ,authlist .list .get (id ))).queue ();
327
+ }else {
328
+ event .getTextChannel ().sendMessage (String .format ("%s님은 인증되지 않았습니다." ,name )).queue ();
329
+ }
294
330
}
295
331
/*
296
332
Set config command
0 commit comments