teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

ソースコードを編集

2021/10/08 06:10

投稿

akki_0523
akki_0523

スコア0

title CHANGED
File without changes
body CHANGED
@@ -70,7 +70,7 @@
70
70
  //アイテムボックスの中身を保存する
71
71
  inventory.set(message.author.id, JSON.stringify(itembox));
72
72
  }
73
- });
73
+ );
74
74
  client.login('TOKEN');
75
75
 
76
76
 

5

問題点の追加

2021/10/08 06:10

投稿

akki_0523
akki_0523

スコア0

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  個人のレベルがアップするとランダムなアイテムを入手し、アイテムを収集できる機能を実現したいです。
4
4
 
5
5
  ### 発生している問題・エラーメッセージ
6
- 個人で入手したアイテムがユーザー全員で共通したアイテムボックスに格納されてしまうので、個人ごとのアイテムボックスに格納したい
6
+ 入手したアイテムが格納されるアイテムボックスを表示しようとすると、[object Object]と表示されてしまう。
7
7
 
8
8
  ### 該当のソースコード
9
9
 
@@ -23,7 +23,15 @@
23
23
  // ユーザーのレベルを取得する。なければ{ count: 0, level: 0 }にする
24
24
  const level = (await levels.get(message.author.id)) || { count: 0, level: 0 };
25
25
 
26
+
27
+
28
+ //アイテムボックスの中身を表示する
29
+ if (message.content.match(/アイテムボックス表示/)){
30
+ message.channel.send(`${itembox}`);
31
+ }
32
+
33
+
26
- // カウントを1増やす
34
+ // レベルのカウントを1増やす
27
35
  if (message.content.match(/サンプル/)){
28
36
  level.count += 1;
29
37
  }

4

コードを修正

2021/10/05 15:05

投稿

akki_0523
akki_0523

スコア0

title CHANGED
File without changes
body CHANGED
@@ -12,12 +12,17 @@
12
12
  var { itembox }= require('./blocked.json')
13
13
 
14
14
  // レベルカウンター
15
+ //レベルテーブル
15
- const levels= new Keyv('sqlite://db.sqlite', { table: 'levels' });
16
+ const dosukebes= new Keyv('sqlite://db.sqlite', { table: 'dosukebes' });
17
+ //インベントリーテーブル
18
+ const inventory = new Keyv('sqlite://db.sqlite', { table: 'inventory' });
19
+
16
20
  client.on('message', async (message) => {
17
21
  // ボットは除外する
18
22
  if (message.author.bot) return;
19
23
  // ユーザーのレベルを取得する。なければ{ count: 0, level: 0 }にする
20
24
  const level = (await levels.get(message.author.id)) || { count: 0, level: 0 };
25
+
21
26
  // カウントを1増やす
22
27
  if (message.content.match(/サンプル/)){
23
28
  level.count += 1;
@@ -27,12 +32,19 @@
27
32
  // ユーザーのレベルを保存する
28
33
  levels.set(message.author.id, level);
29
34
 
30
- // カウントが5になったら0にして、レベルを1増やす
35
+ // カウントが5になったら0にして、レベルを1増やす
31
36
  if (level.count >= 5) {
32
37
  level.count = 0;
33
38
  level.level += 1;
34
39
 
40
+ //itemboxの内容をユーザーID指定で読み込み
41
+ var load_itembox = (await inventory.get(message.author.id) || [])
42
+ try {
43
+ var itembox = JSON.parse(load_itembox)
44
+ } catch (error) {
45
+ var itembox = load_itembox
46
+ }
35
- // 数値を抽選する
47
+ // アイテムの数値を抽選する
36
48
  var random = Math.floor( Math.random() * 11 );
37
49
 
38
50
  // レベルアップ・アイテム入手メッセージ
@@ -48,13 +60,8 @@
48
60
        }
49
61
  }
50
62
  //アイテムボックスの中身を保存する
51
- const fs= require('fs');
52
- fs.writeFile("./blocked.json", JSON.stringify({ itembox }), function(err) {
63
+ inventory.set(message.author.id, JSON.stringify(itembox));
53
- if(err) {
54
- return console.log(err);
55
- }
64
+ }
56
- console.log("The file was saved!");
57
- });
58
65
  });
59
66
  client.login('TOKEN');
60
67
 

3

2021/10/05 14:56

投稿

akki_0523
akki_0523

スコア0

title CHANGED
@@ -1,1 +1,1 @@
1
- discord.jsで配列を個に保存したい
1
+ discord.jsで配列を個人ごとに保存したい
body CHANGED
File without changes

2

メッセージを追加

2021/09/30 09:54

投稿

akki_0523
akki_0523

スコア0

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,7 @@
8
8
  ### 該当のソースコード
9
9
 
10
10
  ```JavaScript
11
+ //アイテムボックス作成
11
12
  var { itembox }= require('./blocked.json')
12
13
 
13
14
  // レベルカウンター
@@ -46,7 +47,7 @@
46
47
       );
47
48
        }
48
49
  }
49
- //配列の中身を保存する
50
+ //アイテムボックスの中身を保存する
50
51
  const fs= require('fs');
51
52
  fs.writeFile("./blocked.json", JSON.stringify({ itembox }), function(err) {
52
53
  if(err) {

1

記入ミスの修正

2021/09/30 06:14

投稿

akki_0523
akki_0523

スコア0

title CHANGED
File without changes
body CHANGED
@@ -55,4 +55,8 @@
55
55
  console.log("The file was saved!");
56
56
  });
57
57
  });
58
- client.login('TOKEN');
58
+ client.login('TOKEN');
59
+
60
+
61
+
62
+ ```