2016-07-21 7 views
0

API:https://github.com/satom99/litcordは、どのように私は私の「変数が」有効「ID」であるかどうかを確認することができます

がどのように私は私のvaliableその場合、有効なIDを確認することができますか?

local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)')  
local server = client.servers:get('id', serverID) 

のserverIDは可変であり、私はそうでなければ、私は、サーバーがnilの値であるというエラーメッセージが表示されますサーバーIDが有効なID であるかどうかを確認する必要があります。

私は1つのコマンドを完了するための日数を試していますが、これはその一部です。 さらに内容が必要な場合は教えてください、私はそれをあなたにリンクします。

全コード:

client:on(
    'message', 
    function(message) 
     local userID = message.author.id 
     local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)') 
     local server = client.servers:get('id', serverID) 
     local channel = server.channels:get('id', channelID) 
     local cmd = cmd or message.content 
     if (cmd == "!say") and message.parent.is_private then 
     if (userID == "187590758360940545") then 

      if not server then 
      return 
      end 

      if (server == servers) then 

      if (channel == channels) then 
       message.channel:sendMessage(arg) 
      else 
       message:reply("I don't know this channel.") 
       return 
      end 

      message:reply("I don't know this server.") 

      end 

     else 
      message:reply(":sob: Stop!!!!") 
     end 
     end 
    end 
) 

そして、どのように私はそれが私が機能 message.channel:sendMessage(argにしたいチャンネルに書いてみましょうことができます) これは、メッセージのようなものです:返信 は、それが戻って返信メッセージはどこから来たのか。

+0

'message.content'が正しい形式かどうか、' client.servers:get() 'があなたの' serverID'を受け入れるかどうか確認する必要がありますか? – mpeterv

+0

Skype? 私はそのclient.serversを推測します:get() 私はそれをあなたにスカイプしてすべてをリンクすれば、それをより良く説明できます。 serverIDがmyコマンドから受け入れられるかどうかを確認する必要があります。 – jepjep40

+0

okgeändert.... – jepjep40

答えて

0

serverIDの検証を忘れてみましょう。

もちろん、nilを返却する場合は、client.servers:get('id', serverID)ケースを常に処理する必要があります。

何らかの形でserverIDを単に検証して、有効なサーバーハンドルバックが得られることを望みます。これはオプションではありません。

だからどちらかそれがnilある場合は、serverを使用しないようにif文でserverをチェックルアス・エラー処理機能https://www.lua.org/manual/5.3/manual.html#2.3

または単にを使用しています。

簡体:

local server = client.servers:get('id', serverID) 
if not server then 
    print("No server with id '" .. serverID .. "' found.") 
    return -- or do something clever here, show a message box or whatever... 
end 
-- server won't be nil from here 

あなたが適切にその可能性を処理する必要があります返されるnilのための他の方法がないことを確かに知っていない限り。

+0

そして、あなたはスカイプを持っています: O? は、それからちょうど私が私の最初のJEP後に追加FUGとあなたが一緒に他の部分を追加した場合、あなたは私のスカイプ名を持っています。 私はそれを見つけるのが簡単ではないように書きます。 – jepjep40

+0

スタックオーバーフローの感覚は、問題がより明らかとなるであろうように質問をする、とのそれぞれが同じ問題を抱えている助けるために答えを提供することです。 SOはSkypeのメディエーションではありません。あなたはそれにSkypeのを私に言っている何をするよう あなたの質問を編集します。 – Piglet

+0

変更されました。 – jepjep40

関連する問題