์ด์ฉํผ ์๋ก๋ผ ํ ๊ฒ๋ ์์ด ๋น๊ตด๊ฑฐ๋ฆฌ๋ 12์ 19์ผ ์ ๋
์ ๊นํ๋ธ์ ๋ค์ด๊ฐ๋๋ ๊ฐ์๊ธฐ ์ ๊ฐ ํ๋ก์ฐํ๋ ๋ถ์ค ํ๋ถ์ด ํด์ปคํค ์ฐธ์ฌ ๋ ํฌ๋ฅผ ์์ฑํ์
จ๊ธธ๋ ์ ๋ฒ๋ถํฐ ํด์ปคํค์ ๋๊ฐ๊ณ ์ถ์ ์๊ฐ์ด ์์ด์, ๊ธํ๊ฒ ์๋ ์น๊ตฌ ํ๋ช
๋ถ๋ฌ์ ํ์ผ๋ก ํ๊ณ ์์ด๋์ด 30๋ถ๋ง์ ์ง๊ณ ๋ง๊ฐ 1์๊ฐ ๋จ๊ธฐ๊ณ ๊ธฐํ์๋ฅผ ์์ฑ ํ ์ ์ฒญ์๋ฅผ ์ ์ถํ์ต๋๋ค. ๊ทธ ์ดํ์ ํฌ๋ฆฌ์ค๋ง์ค๊ฐ ์์ฃผ ์ฌ๋ฏธ์์ด์ง๊บผ ๊ฐ๋๋ผ๊ตฌ์..ใ
ใ
๊ทธ๋์ ํฌ๋ฆฌ์ค๋ง์ค๋์ ๋ฐ์ ๋์ด ์ค์ง๋ง, ์ธ์ธํ ์ง์์ ๋์์ ์ฝ๋ฉ์ ํ๊ณ ๋ฐํ๊น์ง ๋๋ฌ์ต๋๋ค. ๊ทธ๋์ ํ๋ฒ ๊ฐ๋ฐ๊ธฐ๋ฅผ ์ ์ด๋ณด๊ฒ ์ต๋๋ค!
๊ฐ๋ฐ ํ๊ฒฝ ์ธํ
์ผ๋จ ์ ๊ฐ ํ์ํ ๊ฒ์ 1. ์๋ก๊ฐ์ ํ์ ์ด ๊ฐ๋ฅํ ํด์ด์ด์ผํ๊ณ 2. ์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ๋ค์ด ์ฝ๊ฒ ๊น๋ ค์ผ ํ๊ณ 3. ์ด๋์๋ ์ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ 4. ์ฌ์ฉ์ด ์ฌ์์ผํ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑํ ํ์ ํด์ ์ฐพ๋ค๊ฐ ๊ตฌ๋ฆIDE๋ฅผ ์ฌ์ฉํด ๊ฐ๋ฐํ๊ฒ ๋์์ต๋๋ค. ๊ตฌ๋ฆIDE๋ฅผ ์จ๋ณด๋๊น ์๋ก๊ฐ ์์ ํ ๋ ํธํ๋๋ผ๊ตฌ์. ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด ์๋๋ฐฉ์๊ฒ๋ ๋ฐ๋ก ๋ณด์ด๊ณ , ๋ด๊ฐ ์ด๋์ ์ ๋ ฅํ๊ณ ์๋์ง๋ ๋ณด์ฌ์ ๋ง์กฑ์ค๋ฝ๊ฒ ์ผ์ผ๋...! ํ์ ํ๊ฒ ์ต๋๋ค.. (๊ธฐ๋ค๋ ค์ฃผ์ธ์)
๊ทธ๋ฆฌ๊ณ , ํน์๋ ํ์ ๋๋ฆฌ์๋ฉด.. ๋ง์ฝ ๊ตฌ๋ฆIDE๋ก Discord.js๋ฅผ ์ฌ์ฉํ์ ๋ค๋ฉด ๊ผญ ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ค๋ "Node.js ๋ฒ์ 16.x๋ก ์ ๊ทธ๋ ์ด๋" ์ต์ ์ ์ฒดํฌํด์ฃผ์ ์ผ Discord.js 13๋ฒ์ ์ด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค! ๋ง์ฝ ์ด ๋ถ๋ถ์ ์ฒดํฌ ์ํ๋ฉด event ์ค๋ฅ๊ฐ ๋๋ฉฐ ์ฌ์ฉ ๋ถ๊ฐํฉ๋๋ค. ์ด ๋ถ๋ถ๋๋ฌธ์ 1์๊ฐ๋์ ์ฝ์งํ์ต๋๋คใ ใ
์ด์ ๊ฐ์ฅ ์ค์ํ DB๋ฅผ ์ธํ ํ๋ ๋ฌธ๋จ์ด ๋ฑ์ฅํ ํ์ด๋ฐ์ธ๋ฐ.. ์ ํฌ๋ DB๋ฅผ ์ฌ์ฉํ์ง ์์์ต๋๋ค..! ๊ทธ ์ฌ์ ๋ mongoose๋ฅผ ์ค์นํ๋ฉฐ ์๊พธ ์ค๋ฅ๊ฐ ๋ ๋ฟ๋๋ฌ ์์ด๋/๋น๋ฐ๋ฒํธ๋ฅผ ์ธํ ํด์ผํ๋๋ฐ ์ธํ ํ๋ ค ํด๋ ์ค๋ฅ๋๊ณ (์๊น ํ์ ํ๊ฒ ๋ค๊ณ ํ ๋ถ๋ถ์ ๋๋ค.), ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ๊ณ .. ํด์ MySQL๋ก๋ ์๋ํ๋ค๊ฐ ๊ฒฐ๊ตญ DB๊ฐ ์๋ ๋ ธDB๋ก ๊ฐ๋ฐํ์ต๋๋ค. ์ฌ๊ธฐ์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง๊ฐ ๋ง์ด๋ค ๊ถ๊ธํดํ์ค๊ฑฐ ๊ฐ์๋ฐ ์ด๊ฒ๋ ํ์ ...
๊ธฐ๋ณธ ์ฝ๋ฉ
์ ๋ Discord.js์ ๊ธฐ๋ณธ ๋ฌธ์๋ฅผ ๋ณด๊ณ ์ผ๋จ ping๋ฅผ ์ ๋ ฅํ๋ฉด pong๊ฐ ๋ต๋ณํ๋ ์ฝ๋๋ถํฐ ํ๋๋ฐ์, ์ฌ๊ธฐ์๋ ๋ง์ด ์ฝ์งํ์ต๋๋ค. ์ด์ ๊ฐ ๋ญ๋๋ฉด...
client.on('messageCreate', async (message) => {
์ฌ๊ธฐ์ client.on('messageCreate ~~ ์์ ์ ๊ฐ ๋ณธ ๊ฐ์ข๋ ๊ตฌ๋ฒ์ ์ด๋ผ ๊ทธ๋ฐ์ง Create๋ฅผ ์ ์ด์ผํ๋ค๋ ๊ฒ์ ๋ชฐ๋ผ์ ์์ ์๋๋ฐ, ๊ทธ๋์ ๋น์ฐํ ๋ฉ์ธ์ง ์ ์ก์ด ์๋์ด ๊ณ ๋ฏผ์ ๋ง์ดํ์์ต๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก๋ Create๋ฅผ ์ ์ด์ผ ํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์ ์ผ๋๊น ๋ฐ๋ก ๋๋๋ผ๊ตฌ์...ใ ใ ใ ๊ทธ๋์ ์๋ ๋ถ๋ถ์ด ์ ์กํ๋ ๋ถ๋ถ์ ์ ์ฒด ์ฝ๋์ ๋๋ค.
client.on('messageCreate', async (message) => {
if (message.content === 'ping') {
message.channel.send('pong');
}
}
์ฃผ๊ฐ ๋ณ๊ฒฝ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
์ด์ ์ฃผ๊ฐ๋ ๊ณ์ ๋ณ๋ํด์ผํ๊ธฐ ๋๋ฌธ์ ์ฃผ๊ฐ ๋ณ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํด์ค์ผ ํด์ ์ด๋ป๊ฒ ํด์ค๊น ๊ณ ๋ฏผ์ ํด์ฃผ๊ณ , ๋ง๋ค ์ฃผ์์ ์๊ฐํ์ต๋๋ค. ์นด์นดใ ..๊ฐ ์๋ ์บ์บ์ค์ด๊ณ ์ด๋ป๊ฒ ์ฃผ๊ฐ๊ฐ ์ค๋ฅด๋ฝ ๋ด๋ฆฌ๋ฝ ํ๋๋ฉด, ์บ์บ์ค์ ๊ธฐ๋ณธ๊ฐ์ 800์ด์ฝ(๋จ์๋ ์ด์ฝ์ ๋๋ค.) ์ด๊ณ , ์ฌ๊ธฐ์ ์ผ๋งํผ ์ค๋ฅด๊ณ ๋ด๋ฆด์ง๋ฅผ ๋๋ค์ผ๋ก ์ ํ ๋ค์ 50% ํ๋ฅ ๋ก ์ค๋ฅด๊ณ ๋ด๋ฆฌ๊ฒ ํด๋์์ต๋๋ค. ๊ทธ๋์ ์ด๋ ๊ฒ ์ฃผ๊ฐ ๋ณ๊ฒฝ์ ๊ตฌํํ์ต๋๋ค.
setTimeout(function () {
//์บ์บ์ค ๋๋ค๊ฐ ์ค์
kakaoMove = Math.floor(Math.random() * 20) + 8;
console.log('kakaoMove : ' + kakaoMove);
//์ค๋ฅผ๊น ๋ด๋ฆด๊น ์ค์
kakaoIfDownOrUp = Math.floor(Math.random() * 2 + 1);
console.log(kakaoIfDownOrUp);
}, UpdateTime);
setTimeout(function () {
if (kakaoIfDownOrUp == 1) {
//์ฃผ์๊ฐ ์ค๋ฆ
kakaoJusik = kakao + kakaoMove;
console.log('kakaoJusik : ' + kakaoJusik);
UpOrDownMessage = 'โฒ ';
} else if (kakaoIfDownOrUp == 2) {
//์ฃผ์๊ฐ ๋ด๋ฆผ
kakaoJusik = kakao - kakaoMove;
console.log('kakaoJusik : ' + kakaoJusik);
UpOrDownMessage = 'โผ ';
}
}, UpdateTime);
์ฃผ์ ๊ตฌ๋งค/ํ๋งคํ๊ธฐ
์ผ๋จ ์ฌ์ฉ์๊ฐ ์ฃผ๊ฐ ๊ตฌ๋งค [์ฃผ๊ฐ๋ช ]์ ์ ๋ ฅํ๊ฒ ํ์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ตฌ๋งค๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ ์ง๊ฐ ์ค์ ์ธ๋ฐ, ๋ญ.. DB๋ฅผ ์์ฐ๊ธฐ๋ก ํ์ผ๋, Arrary์ ๋ณ์๋ฅผ ์ฌ์ฉํด ๊ตฌํ์ ํด์ค์ผํฉ๋๋ค. ๊ทธ๋์ ์ผ๋จ ๊ตฌ๋งค๋ฅผ ์ ๋ง๋ก ํ๊ฒ ๋ค๊ณ ์ฌ์ฉ์๊ฐ ๋์ค์ฝ๋์ ์ปค๋งจ๋๋ฅผ ์ ๋ ฅํ๋ฉด Arrary์ [์ฃผ์๋ช ]์ ๋ฃ์ด์ฃผ๊ณ (.push), ๊ตฌ๋งค๋ฅผ ๊ฐ์งํ๋ ๋ณ์์ true๋ฅผ ๋ฃ์ด์ฃผ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ฐ์ ๋์ wallet ๋ณ์๋ก ์ค์ ํด์ค์, wallet ๋ณ์์์ ์บ์บ์ค์ ํ์ฌ ์ฃผ๊ฐ ๊ฐ์ ๋นผ์ wallet ๋ณ์์ ๋ค์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์ด ์ฐจ๊ฐ๋๋ ๊ฒ๋ ๊ตฌํํ์ต๋๋ค. ํ๋งค๋ ์๋ ๋ฐฉ์์ ์ด์ ๋์ผํฉ๋๋ค. true๊ฐ false๋ก ๋ฐ๋๊ณ Arrary์์ [์ฃผ์๋ช ]์ ์ญ์ ํ์ต๋๋ค. (.slice) ๋ฌผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝ๋๋ฅผ ์์์ ์๋๋ก ์ฝ์ด๋ด๋ ค๊ฐ๋ฏ๋ก ์ ์ ํ ์์น์ ์ฝ๋๋ฅผ ๋ฐฐ์นํ๊ณ ์ฝ๋๊ฐ ์์ธ ๋งํผ ์ฃผ์์ฒ๋ฆฌ๋ ๋นก์ธ๊ฐ ํด์คฌ์ต๋๋ค.
if (message.content === '์ด์ฝ์ผ ๊ตฌ๋งค ํ์ธ ์บ์บ์ค') {
console.log('์ ์ ์
๋ ฅ');
if (myjusik_1 == '์บ์บ์ค') {
const exampleEmbed = new MessageEmbed()
.setColor('#FE9A2E')
.setTitle('์ด๋ฏธ ์บ์บ์ค๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค.')
.setFooter('Make by SEONG Park(Dev) & Nayun(Plan)');
message.channel.send({ embeds: [exampleEmbed] });
} else {
//๊ตฌ๋งค์์ฌ ์ ์ฅ
buy = '๊ตฌ๋งค์๋ฃ';
console.log(sell);
MyHave.splice('๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค.');
//์ง๊ฐ์์ ๋ ์ฐจ๊ฐ
if (buy == '๊ตฌ๋งค์๋ฃ') {
if (wallet >= kakaoJusik) {
wallet = wallet - kakaoJusik;
const exampleEmbed = new MessageEmbed()
.setColor('#FE9A2E')
.setTitle('๊ตฌ๋งค๊ฐ ์๋ฃ๋์์ต๋๋ค.')
.setDescription(
kakaoJusik +
'์ด์ฝ๊ฐ ์ง๊ฐ์์ ์ฐจ๊ฐ๋์ด ํ์ฌ ๋ณด์ ๊ธ์ก์ ' +
wallet +
'์ด์ฝ์
๋๋ค.'
)
.setFooter('Make by SEONG Park(Dev) & Nayun(Plan)');
message.channel.send({ embeds: [exampleEmbed] });
//๋ณด์ ์ฃผ์ ์ด๋ ์ด ์ ์ฅ
MyHave[MyHave.length] = '์บ์บ์ค';
myjusik_1 = '์บ์บ์ค';
console.log(MyHave);
} else {
//๊ตฌ๋งค ์คํจ
const exampleEmbed = new MessageEmbed()
.setColor('#FE9A2E')
.setTitle('์ง๊ฐ์ ๋์ด ๋ถ์กฑํ์ฌ ๊ตฌ๋งค๊ฐ ๋ถ๊ฐํฉ๋๋ค.')
.setFooter('Make by SEONG Park(Dev) & Nayun(Plan)');
message.channel.send({ embeds: [exampleEmbed] });
}
}
}
}
์ง๊ฐ ๊ตฌํํ๊ธฐ
์ง๊ฐ ๋ถ๋ถ์ ๊ตฌํํ ๋.. ๋๊ฒ ์๋จธ๋ฆฌ๋ฅผ ๋ง์ด ์ผ์ต๋๋ค. ์ผ๋จ ์ง๊ฐ ์ฝ๋๋ ๋งจ ์๋์ ์์นํด์์ด์ผ ์์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ค ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋งจ ์๋์ ๋๊ณ , ๋ณด์ ์ค์ธ ์ด์ฝ ๋ถ๋ถ์ ๊ทธ๋ฅ ๋ณ์๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ ๋ถ๋ถ์ด๋ผ ๊ฐ๋จํ๋๋ฐ ์ ์๋ ๋ณด์ ์ฃผ์ ๋ถ๋ถ์ด ๊น๋ํ๊ฒ ํ์ํ๊ธฐ ์ํด์ ๋๊ฒ.. ๋จธ๋ฆฌ๋ฅผ ๋ง์ด ๊ตด๋ ค์ ๊ตฌํํด์คฌ์ต๋๋ค.
//์ง๊ฐ ์ฃผ์ํ์ธ
let MyHave = ['๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค.'];
์ผ๋จ ์ ๋ ์ฃผ์๊ฐ๋ค์ MyHave๋ผ๋ ์ด๋ ์ด์ ๋ฃ์ด๋จ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด๋ ์ด์ ์ด๊ธฐ๊ฐ์ผ๋ก ๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค๋ฅผ ๋ฃ์ด์ค์ ๋ณด์ ํ ์ฃผ์์ด ์๋ ์ฑ๋ก ์ด์ฝ์ผ ์ง๊ฐ์ ์ ๋ ฅํ๊ฒ ๋๋ค๋ฉด ๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค๋ฅผ ํ์ํ๊ฒ ํ์ต๋๋ค. ๊ทธ๋ผ ์ฌ๊ธฐ์ ๋ง์ฝ ์ฃผ์์ ๋ณด์ ํ๋ฉด '๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค'๋ถ๋ถ์ ์ด๋ป๊ฒ ํ๋๋ฉด,
if (message.content === '์ด์ฝ์ผ ๊ตฌ๋งค ํ์ธ ์บ์บ์ค') {
MyHave.splice('๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค.');
}
splice ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๋งค๋ฅผ ํ๋ค๋ฉด ์ฃผ์์ ์ ์ฅํ๋ MyHave ์ด๋ ์ด์์ ์ด๊ธฐ๊ฐ์ธ '๋ณด์ ํ ์ฃผ์์ด ์์ต๋๋ค' ๋ถ๋ถ์ ์ญ์ ํด์ฃผ์์ต๋๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ์๋จธ๋ฆฌ๋ฅผ ๊ตด๋ฆฐ ๋์ ๋ณด์ ์ฃผ์ ๋ถ๋ถ์ ๊น๋ํ๊ณ ์์๊ฒ ๊ตฌํํ์ต๋๋ค ใ ใ
๋์ ์ฒซ ํด์ปคํค ์ฐธ์ฌ ํ๊ธฐ
์ด๋ฒ 2021 ํ๋๋ฆฌ ํด์ปคํค์ ์ฒ์ ์ฐธ์ฌํด๋ดค๋๋ฐ, ์ผ๋จ ์ฒซ ์๊ฐ์ผ๋ก ๋๊ฒ ์ฌ๋ฏธ์์์ต๋๋ค. ๋ง์ด ์ข ์ด์ํ๋ฐ.. ์๊ฐ์ ์ซ๊ธฐ๋ฉฐ ๊ฐ๋ฐํ๋ ๋ง์ด ์๋๋ผ๊ตฌ์ (??) ์์ผ๋ก ์ด๋ฐ ํด์ปคํค์ด๋ ์ฝ๋ฉ ๋ํ์ ์์ฃผ ์ฐธ์ฌํ ์๊ฐ์ ๋๋ค.