前提・実現したいこと
JsonでDiscordのbotを製作しています。
レベルがアップするとランダムなアイテムを入手し、アイテムを収集できる機能を実現したいです。
発生している問題・エラーメッセージ
現在、プログラムを再実行すると入手したアイテムが消えてしまう状況です。
再実行した際に初期化してしまうのが原因だということは分かっているのですが、対応策が分かりません。
該当のソースコード
JavaScript
1// アイテムボックスの初期化 2let itembox = [] 3console.log(itembox.length) 4 5// レベルカウンター 6const levels= new Keyv('sqlite://db.sqlite', { table: 'levels' }); 7 client.on('message', async (message) => { 8 // ボットは除外する 9 if (message.author.bot) return; 10 // ユーザーのレベルを取得する。なければ{ count: 0, level: 0 }にする 11 const level = (await levels.get(message.author.id)) || { count: 0, level: 0 }; 12 // カウントを1増やす 13 if (message.content.match(/サンプル/)){ 14 level.count += 1; 15 } 16 17 18 // ユーザーのレベルを保存する 19 levels.set(message.author.id, level); 20 21 // カウントが5になったら0にして、レベルを1増やす 22 if (level.count >= 5) { 23 level.count = 0; 24 level.level += 1; 25 26 // 数値を抽選する 27 var random = Math.floor( Math.random() * 11 ); 28 29 // レベルアップ・アイテム入手メッセージ 30 if(1>random&&random >=0){ 31 itembox.push('りんご'); 32 message.channel.send({embed: 33 {color: 7506394,fields: [{name: "おめでとうございます!", 34 value: `レベルがLv.${level.level}になりました!\nりんごを入手しました。` 35 }, 36 ] 37 }} 38 ); 39 } 40 } 41 }); 42 client.login('TOKEN'); 43
回答1件
あなたの回答
tips
プレビュー