我如何检查我的“变量”是一个有效的“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) 的通道,这是像写消息:回复 它来回复消息来自哪里。
答
让我们忘记验证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
除非你肯定知道有近亲被退回,你应该正确处理这种可能性没有其他办法。
你需要检查'message.content'格式是否正确,或者'client.servers:get()'接受了你的'serverID'吗? – mpeterv
Skype? 我想它的client.servers:get() 我可以更好地解释它,如果我skype你并链接你的一切。 它应该检查serverID是否被我的命令接受。 – jepjep40
okgeändert.... – jepjep40