button.js
3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const { MessageActionRow, MessageButton, Interaction } = require('discord.js');
var disabled_var={
en:true,
ko:false,
jp:false
};
var label_var={
en:'😛', // 초기값 영어(disabled), 버튼 선택시 함수가 돌아가는 것이므로 처음엔 X표시
ko:'한국어',
jp:'일본어',
};
var current_country='영어' // 초기값 영어
function trans_disabled_var(input_str){
if (input_str == "en"){
disabled_var.en=true;
disabled_var.ko=false;
disabled_var.jp=false;
label_var.en = '😛';
label_var.ko = '한국어';
label_var.jp = '일본어';
current_country = '영어';
}
else if (input_str == "ko"){
disabled_var.en=false;
disabled_var.ko=true;
disabled_var.jp=false;
label_var.en = '영어';
label_var.ko = '😛';
label_var.jp = '일본어';
current_country = '한국어';
}
else if (input_str == "jp"){
disabled_var.en=false;
disabled_var.ko=false;
disabled_var.jp=true;
label_var.en = '영어';
label_var.ko = '한국어';
label_var.jp = '😛';
current_country = '일본어';
}
// 변수가 3개밖에 안되니깐, 가시성위해서 / 어느 언어로부터 바뀌었는지 모르기 때문에, 편하게 변수에 일일이 할당함.
// 변수가 100개였다면, 임시 변수 만들고 추적해서 어느 언어에서 바뀌었는지 확인하고, if(임시변수)써서 이모지 할당하고,
// 그전꺼, 바뀌어야 할 국가변수 바꿈(받은 str값 label_var 배열(?) for 문 돌려서 찾음)
}
exports.run = async (client, msg, args, prefix) => {
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('korean')
.setLabel(label_var.ko)
.setStyle('PRIMARY')
.setDisabled(disabled_var.ko),
new MessageButton()
.setCustomId('japanese')
.setLabel(label_var.jp)
.setStyle('PRIMARY')
.setDisabled(disabled_var.jp),
new MessageButton()
.setCustomId('english')
.setLabel(label_var.en)
.setStyle('PRIMARY')
.setDisabled(disabled_var.en),
); //버튼 생성
await msg.reply({ content: '번역하고 싶은 언어를 골라주세요. 현재 언어는 '+ current_country+ '입니다.', components: [row] });
//버튼 출력
client.on('interactionCreate', interaction => {
if (!interaction.isButton()) return;
if(interaction.customId === 'korean'){
global.trans_var ='ko';
trans_disabled_var('ko');
}
else if(interaction.customId === 'japanese'){
global.trans_var ='jp';
trans_disabled_var('jp');
}
else if(interaction.customId === 'english'){
global.trans_var ='en';
trans_disabled_var('en');
}
interaction.update({
components: [
new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('korean')
.setLabel(label_var.ko)
.setStyle('PRIMARY')
.setDisabled(disabled_var.ko),
new MessageButton()
.setCustomId('japanese')
.setLabel(label_var.jp)
.setStyle('PRIMARY')
.setDisabled(disabled_var.jp),
new MessageButton()
.setCustomId('english')
.setLabel(label_var.en)
.setStyle('PRIMARY')
.setDisabled(disabled_var.en),
)
]
})
});
};
exports.config = {
name: '나라',
aliases: [],
category: ['Translate'],
des: ['봇이 띄워주는 버튼을 눌러서 번역할 언어(나라)를 선택합니다.'],
use: ['!나라']
};