남우성

Merge branch 'feature/term' into develop

...@@ -21,12 +21,9 @@ module.exports = { ...@@ -21,12 +21,9 @@ module.exports = {
21 .addField('/도움 <명령어>', '명령어 상세 설명', true) 21 .addField('/도움 <명령어>', '명령어 상세 설명', true)
22 .addField('/마리샵', '마리샵 정보 조회', true) 22 .addField('/마리샵', '마리샵 정보 조회', true)
23 .addField('/정보 <닉네임>', '전투정보실 조회', true) 23 .addField('/정보 <닉네임>', '전투정보실 조회', true)
24 -<<<<<<< HEAD
25 - .addField('/로아와 <닉네임>', '로아와 조회', true);
26 -=======
27 .addField('/로아와 <닉네임>', '로아와 조회', true) 24 .addField('/로아와 <닉네임>', '로아와 조회', true)
28 - .addField('/나침반', '금일 스케줄 조회', true); 25 + .addField('/나침반', '금일 스케줄 조회', true)
29 ->>>>>>> feature/compass 26 + .addField('/용어 <단어>', '로스트아크 용어 설명', true);
30 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); 27 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}});
31 } else if(helpCommand === "도움") { 28 } else if(helpCommand === "도움") {
32 const helpEmbed = new MessageEmbed() 29 const helpEmbed = new MessageEmbed()
...@@ -52,15 +49,18 @@ module.exports = { ...@@ -52,15 +49,18 @@ module.exports = {
52 .setTitle(`/로아와 <닉네임> 사용방법`) 49 .setTitle(`/로아와 <닉네임> 사용방법`)
53 .setDescription(`<닉네임>에 해당하는 캐릭터의 로아와 정보를 브라우저로 엽니다.`); 50 .setDescription(`<닉네임>에 해당하는 캐릭터의 로아와 정보를 브라우저로 엽니다.`);
54 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); 51 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}});
55 -<<<<<<< HEAD
56 -=======
57 } else if(helpCommand === "나침반"){ 52 } else if(helpCommand === "나침반"){
58 const helpEmbed = new MessageEmbed() 53 const helpEmbed = new MessageEmbed()
59 .setColor('#0099ff') 54 .setColor('#0099ff')
60 .setTitle(`/나침반 사용방법`) 55 .setTitle(`/나침반 사용방법`)
61 .setDescription(`금일 이용가능한 모험섬과 콘텐츠 정보를 제공합니다.`); 56 .setDescription(`금일 이용가능한 모험섬과 콘텐츠 정보를 제공합니다.`);
62 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); 57 await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}});
63 ->>>>>>> feature/compass 58 + } else if(helpCommand === "용어"){
59 + const helpEmbed = new MessageEmbed()
60 + .setColor('#0099ff')
61 + .setTitle(`/용어 사용방법`)
62 + .setDescription(`<단어>에 해당하는 로스트아크 용어 설명을 제공합니다.`);
63 + await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}});
64 } else { 64 } else {
65 await interaction.reply("해당 명령어는 없습니다."); 65 await interaction.reply("해당 명령어는 없습니다.");
66 } 66 }
......
1 +const { SlashCommandBuilder } = require('@discordjs/builders');
2 +const { MessageEmbed } = require('discord.js');
3 +const fs = require('fs');
4 +
5 +module.exports = {
6 + data: new SlashCommandBuilder()
7 + .setName('용어')
8 + .setDescription('로스트아크 관련 용어정보를 제공합니다.')
9 + .addStringOption(option =>
10 + option.setName('단어')
11 + .setDescription('궁금한 단어')
12 + .setRequired(true)),
13 + async execute(interaction) {
14 + const user_term = interaction.options.getString('단어');
15 +
16 + await fs.readFile('./terms/response.json', 'utf-8', (err, respone) => {
17 + if (err) return console.log(err);
18 + const terms = JSON.parse(respone);
19 +
20 + if(user_term in terms){
21 + const termembed = new MessageEmbed()
22 + .setColor('#FFD700')
23 + .setTitle('단어 정보 제공')
24 + .setDescription(`${user_term}: ${terms[user_term]}`)
25 + interaction.reply({ embeds: [termembed], allowedMentions: {repliedUser: false} });
26 + } else{
27 + const termembed = new MessageEmbed()
28 + .setColor('#FFD700')
29 + .setTitle('단어 정보 제공')
30 + .setDescription(`${user_term}에 대한 정보가 없어요\n사용자가 많이 입력하는 단어 일수록 정보가 빠르게 추가됩니다!`)
31 +
32 + fs.readFile('./terms/request.json', 'utf-8', (err, request) => {
33 + if (err) return console.log(err);
34 + let req_terms = JSON.parse(request);
35 +
36 + if(user_term in req_terms){
37 + req_terms[user_term] += 1;
38 + let reqtermJsion = JSON.stringify(req_terms);
39 + fs.writeFile('./terms/request.json', reqtermJsion, (err) => {
40 + if (err) return console.log(err);
41 + })
42 + }else{
43 + req_terms[user_term] = 0;
44 + let reqtermJsion = JSON.stringify(req_terms);
45 + fs.writeFile('./terms/request.json', reqtermJsion, (err => {
46 + if (err) return console.log(err);
47 + }))
48 + }
49 + })
50 + interaction.reply({ embeds: [termembed], allowedMentions: {repliedUser: false} });
51 + }
52 + })
53 + },
54 +};
...\ No newline at end of file ...\ No newline at end of file
1 +{"user_term":0,"temp":1,"회파":0}
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "쌀먹": "골드를 벌어 쌀로 바꿔 먹는다는 의미, 현재는 배틀아이템을 아끼거나 기본세팅을 맞추지 않은 사람을 의미하기도 함",
3 + "트팟": "트라이파티라는 의미, 일반적으로 처음 레이드를 하는 사람들끼리 모여서 파티를 이룬다",
4 + "랏폿": "파티모집 중 서폿자리만 남았다는 의미",
5 + "클경": "해당 레이드의 클리어를 경험해 보았다는 의미",
6 + "반숙": "반정도 숙련되었다는 뜻으로 보통 몇번 클리어경험은 있지만 숙련자는 아닌 사람들끼리 파티를 이룰 때 쓰는 말",
7 + "숙제팟": "많이 숙련되어 해당 레이드를 숙제처럼 할 수 있는 파티",
8 + "빡숙": "엄청나게 숙련된 사람",
9 + "경미참": "레이드 보상 경매에 참여하지 말라는 의미 ex)눕클경미참, 전각미참",
10 + "국룰": "이미 대중적으로 대부분의 파티에서 사용하는 방식의 공략벅을 사용하겠다는 뜻",
11 + "딱렙": "해당 레이드의 레벨에 딱 맞춘 경우",
12 + "숙코": "숙련 코스프레의 줄인말로, 미숙한 유저가 숙련팟에 갔을 때 나오는 말",
13 + "내실": "섬의 마음, 오르페우스의 별, 모코코, 모험의 서 등 로스트아크 내 수집 컨텐츠를 뜻하는 말",
14 + "장기백": "재련으로 아이템의 장인의 기운이 100%가 된 상태로, 무조건 재련이 성공하는 상태. 많은 사람들의 화를 유발하게 한다.",
15 + "직각": "직업 각인서를 의미",
16 + "떠상": "떠돌이 상인의 줄인말로 로스트아크 내에서 매시 30분에서 55분 동안 등장하는 상인을 말함",
17 + "성불": "보통 레이드 트라이파티에서 많은 시간을 들여 클리어 했을 때 '성불했다' 라는 표현을 사용한다"
18 +}
...\ No newline at end of file ...\ No newline at end of file