Skip to content

Commit bb64328

Browse files
author
Craftingmod
committed
checking roles before auth
1 parent 68051df commit bb64328

File tree

2 files changed

+45
-9
lines changed

2 files changed

+45
-9
lines changed

src/main/java/net/tarks/craftingmod/nccauth/discord/DiscordPipe.java

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,19 +169,22 @@ public void onGuildMemberNickChange(GuildMemberNickChangeEvent event) {
169169

170170
@Override
171171
public void onGuildMemberJoin(GuildMemberJoinEvent event) {
172+
guildMemberJoin(event.getGuild(),event.getUser());
173+
}
174+
public void guildMemberJoin(Guild g, User u){
172175
String msg = cfg.discordWelcomeMsg;
173-
msg = msg.replace("$username",event.getUser().getName())
176+
msg = msg.replace("$username",u.getName())
174177
.replace("$channel","<#" + cfg.discordMainChID + ">");
175-
event.getGuild().getTextChannelById(cfg.discordMainChID).sendMessage(msg).queue();
178+
g.getTextChannelById(cfg.discordMainChID).sendMessage(msg).queue();
176179
}
177180

178181
@Override
179182
public void onGuildMemberLeave(GuildMemberLeaveEvent event) {
180183
guildMemberLeave(event.getGuild(),event.getUser());
181184
}
182185
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()));
185188
g.getTextChannelById(cfg.discordBotChID).sendMessage(msg).queue();
186189
long id = u.getIdLong();
187190

@@ -223,6 +226,7 @@ public void execCommand(MessageReceivedEvent event){
223226
if(!event.getMessage().isFromType(ChannelType.VOICE)){
224227
User sender = event.getAuthor();
225228
String content = event.getMessage().getContentRaw();
229+
Guild guild = event.getGuild();
226230
/*
227231
Auth command
228232
*/
@@ -236,12 +240,27 @@ public void execCommand(MessageReceivedEvent event){
236240
if(roles.size() != 1){
237241
event.getChannel().sendMessage("[Config fail] No roles found / Too many roles at " + cfg.discordToRolesName).queue();
238242
return;
243+
}else{
244+
toRole = roles.get(0);
239245
}
240246
// check exists
241247
if(authlist.hadAuth(user)){
242248
event.getChannel().sendMessage(String.format("이미 인증이 완료된 디스코드 아이디(%s)입니다. ",authlist.list.get(user.userID))).queue();
243249
return;
244250
}
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+
}
245264
// receive auth command
246265
String[] split = content.split(" ");
247266
user.saidChannelID = event.getTextChannel().getIdLong();
@@ -285,12 +304,29 @@ public void execCommand(MessageReceivedEvent event){
285304
}
286305
}
287306
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);
292308
}else if(content.startsWith("!emuExit") && cfg.trustedUsers.contains(sender.getIdLong())){
293309
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+
}
294330
}
295331
/*
296332
Set config command

target/maven-archiver/pom.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Generated by Maven
2-
#Tue Feb 27 23:10:16 KST 2018
2+
#Wed Feb 28 00:41:56 KST 2018
33
version=1.0.0
44
groupId=net.tarks.craftingmod
55
artifactId=ncc_auth

0 commit comments

Comments
 (0)