これ以上の可能性があります。
await userBeingChanged.Edit(nickname: newName).ConfigureAwait(false);
使用しているバージョンはわかりませんが、ここに例があります。
cmd.CreateCommand("setnick")
.Description("Changes, or sets, the nickname of the specified user.")
.Parameter("user")
.Parameter("newname", ParameterType.Unparsed)
.Do(async (e) =>
{
var user = e.Channel.FindUsers(e.GetArg("user")).FirstOrDefault();
string newname = e.GetArg("newname");
await user.Edit(nickname: newname).ConfigureAwait(false);
});
私はこれをあなたのために書いていますが、同様の機能を持つ別のコマンドを作成すると、これがどのように機能するか理解していただければ幸いです。
コマンドには、user
とnewname
という2つのパラメータが追加されています。理由はnewname
で、user
はありませんが、user
ではユーザに言及するかプレーンテキストで書くことができるため、解析されません。ただし、user
にはスペースを含めることはできません。したがって、スペースが含まれている場合はユーザーに言及するか、現在の表示名をコピーして貼り付けるのが最善の方法です。 にはにスペースが含まれているため、newname
は解析されません。
メッセージの長さにかかわらず、最初のパラメータに値が与えられているため、1つのコマンドに2つの未解析パラメータを設定することはできません。到達できません。
ニックネームを変更するには、オンラインにする必要があります。
e.GetArg()
がどのように機能するかの例を示します。ボットにあなたがそれを伝えるようにするための簡単なコマンドを書いてください。
cmd.CreateCommand("say")
.Parameter("msg", ParameterType.Unparsed)
.Do(async (e) =>
{
string message = e.GetArg("msg");
await e.Channel.SendMessage(message);
});
使用法:!say Hello, this works.
、ボットはこの作品、こんにちはを言うになるだろう。。もちろん、メッセージには空白が含まれているため、パラメータを解析しないでください。ご不明な点がございましたら、お気軽にお問い合わせください。
他の人のニックネームを実際に変更することはできますか?私はこれが大きな見落としになると思います。 –
コードを完成したら、私の妻のニックネームを変更すると、私はそれを気に入るはずです。 –
もう1つ取得;設定;プロパティ?これは、読み取り専用でなければなりません。 – ARr0w