2016-07-21 38 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是可變的,我需要檢查,如果SERVERID是一個有效的ID 否則我會得到一個錯誤,該服務器是一個零值。

我正在嘗試完成一條命令,這是它的一部分。 如果您需要更多內容,請告訴我,我會將它鏈接到您。

全碼:

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() 我可以更好地解釋它,如果我skype你並鏈接你的一切。 它應該檢查serverID是否被我的命令接受。 – jepjep40

+0

okgeändert.... – jepjep40

回答

0

讓我們忘記驗證serverID一會兒。

當然,您應該始終處理案件client.servers:get('id', serverID) returing nil

簡單驗證serverID不知何故,希望你會得到一個有效的服務器處理回來是不是一個選項。

因此,無論使用Luas車站僅錯誤處理功能https://www.lua.org/manual/5.3/manual.html#2.3

或只需檢查server與if語句,所以你不會使用server如果nil

簡化:

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 

除非你肯定知道有近親被退回,你應該正確處理這種可能性沒有其他辦法。

+0

你有SKYPE: Ø? 然後,只需富格的我的第一JEP後,我加入,你有我的Skype用戶名,如果你再添加其他部分一起。 我寫它,所以你不能輕易發現。 – jepjep40

+0

堆棧溢出的感覺是要問的問題,這樣的問題將是顯而易見的,並提供答案,幫助每一個有同樣的問題。因此不Skype的調解。 編輯你的問題,這樣你告訴我到Skype的在它的東西。 – Piglet

+0

它已經改變了。 – jepjep40

相關問題