2017-09-06 14 views
2

シナリオ:私はにしようとしています は、サーバにポスト埋め込みメッセージで様々なフィールドを読んで、いくつかの処理を行い、そしてDBに結果を記録します。読む内容

テスト: 「埋め込みメッセージ」を使用するときには(理論的には、それははるかに簡単などの処理のためのフィールドを識別すること)、通常のテキストメッセージを使用するときにすべての作品、関連するメッセージを送信するためtestBotを使用して、私がすることができますデータを取得しません。私はメッセージオブジェクトから「埋め込み」にアクセスする方法を完全に失っています。

私はあなたが調べるためにいくつかのコードをポップする必要があることを理解していますが、私はそれほど遠くまではありません! (最後にリンクされている)ドキュメントを読むと、私はこれらのクラスのどれかと関係があると確信しています: - メッセージ。 は、Googleが私の友人されていない .x.y.zまたはMessageEmbed.x.y.x

を埋め込み、私は奇妙である「埋め込みメッセージ」を読み取るコードの一例を見つけることができません。

とにかく、完全なスポンジのように見えないように、「埋め込み送信者ボット」の作業コードを含めます。いくつかの人が文法を解読するのに問題があるようですので、ここで検索している他の人には役に立つかもしれません...

ありがとうございます。

ドキュメント見つかり: Docs for MessageEmbed とします。

Embed used within message class

コードのテストを埋め込み、送信者のボットについて:

const Discord = require("discord.js"); 
    const client = new Discord.Client(); 
    const config = require("./config.json"); 

    /* A simple bot to throw out a test "Embed message" when asked to. */ 

    client.on("message", (message) => { 
    if (!message.content.startsWith(config.prefix) || message.author.bot) 
    return; 

    if (message.content.startsWith(config.prefix + "emb")) { 
    console.log("Sending an embedd message"); 
    message.channel.send({embed: { 
    color: 3447003, 
    title: "This is an embed (Title)", 
    description: "Embed! (first line)\nsecond line of Desc\nthird line of 
    Desc", 
    footer: 
    { 
     text: "Footnote ©" 
    } 
    }}); 
} else if (message.content.startsWith(config.prefix + "test")) 
    { 
    message.reply("Bot active"); 


    }; 

}); 

    client.login(config.token); 

答えて

1

あなたMessageオブジェクトを作成したら、その中に含まれるすべてのMessageEmbedsの配列を取得するためにembedsプロパティを確認してください。

const Discord = new Discord.Client(); 
/* client.login, etc. etc. */ 

client.on('message', (msg) => { 
    msg.embeds.forEach((embed) => { 
     // add this embed to the database, using embed.description, embed.fields, etc. 
     // if there are no embeds, this code won't run. 
    }); 
    msg.reply("Embed sent!"); 
}); 
+0

おかげ手帖:あなたはその後、ここにいくつかのコード例だなどdescriptionfields

としてプロパティのいずれかを、読み取ることができます。 私は正しい構文(何よりも運がよかった!)でつまずくことができました。もちろん、最初のビットが得られたら、残りは残ります。 私は1つのメッセージの中に埋め込みを受け取ることしか知りませんでしたが、これはテストとしてこれで終わりました: - {{message.embeds [0] .description);} // Embedsのみで作業する あなたのほうが、丸められた一般的な答えです;-) もう一度ありがとうございます。 – MIke

+0

あなたにアップヴォートを与えようとしましたが、見た目にはサイトに新しくなってしまいました;-)それが登録されていることを願っています – MIke

関連する問題