我如何检查我的“变量”是一个有效的“ID”

问题描述:

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

让我们忘记验证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