前提・実現したいこと
discord.jsでDiscordのbotを製作しています。
個人のレベルがアップするとランダムなアイテムを入手し、アイテムを収集できる機能を実現したいです。
発生している問題・エラーメッセージ
入手したアイテムが格納されるアイテムボックスを表示しようとすると、[object Object]と表示されてしまう。
該当のソースコード
JavaScript
1//アイテムボックス作成 2var { itembox }= require('./blocked.json') 3 4// レベルカウンター 5 //レベルテーブル 6const dosukebes= new Keyv('sqlite://db.sqlite', { table: 'dosukebes' }); 7 //インベントリーテーブル 8const inventory = new Keyv('sqlite://db.sqlite', { table: 'inventory' }); 9 10 client.on('message', async (message) => { 11 // ボットは除外する 12 if (message.author.bot) return; 13 // ユーザーのレベルを取得する。なければ{ count: 0, level: 0 }にする 14 const level = (await levels.get(message.author.id)) || { count: 0, level: 0 }; 15 16 17 18//アイテムボックスの中身を表示する 19 if (message.content.match(/アイテムボックス表示/)){ 20message.channel.send(`${itembox}`); 21 } 22 23 24 // レベルのカウントを1増やす 25 if (message.content.match(/サンプル/)){ 26 level.count += 1; 27 } 28 29 30 // ユーザーのレベルを保存する 31 levels.set(message.author.id, level); 32 33 // カウントが5になったら0にして、レベルを1増やす 34 if (level.count >= 5) { 35 level.count = 0; 36 level.level += 1; 37 38//itemboxの内容をユーザーID指定で読み込み 39 var load_itembox = (await inventory.get(message.author.id) || []) 40try { 41 var itembox = JSON.parse(load_itembox) 42} catch (error) { 43 var itembox = load_itembox 44} 45 // アイテムの数値を抽選する 46 var random = Math.floor( Math.random() * 11 ); 47 48 // レベルアップ・アイテム入手メッセージ 49 if(1>random&&random >=0){ 50 itembox.push('りんご'); 51 message.channel.send({embed: 52 {color: 7506394,fields: [{name: "おめでとうございます!", 53 value: `レベルがLv.${level.level}になりました!\nりんごを入手しました。` 54 }, 55 ] 56 }} 57 ); 58 } 59 } 60//アイテムボックスの中身を保存する 61inventory.set(message.author.id, JSON.stringify(itembox)); 62} 63 ); 64 client.login('TOKEN'); 65 66 67
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/05 15:08
2021/10/05 16:54
2021/10/08 05:58 編集
2021/10/08 12:48