我如何检查我的 "variable" 是否有效 "ID"
How can I check if my "variable" is a valid "ID"
API: https://github.com/satom99/litcord
如何检查我的有效 ID 是否有效?
local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)')
local server = client.servers:get('id', serverID)
serverID 是变量,我需要检查 serverID 是否是有效 ID
否则我会收到服务器为零值的错误消息。
我正在尝试几天来完成一个命令,这是其中的一部分。
如果您需要更多内容,请告诉我,我会 link 给您。
完整代码:
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(参数)
这就像 message:reply
它会回复消息的来源。
让我们暂时忘记验证 serverID。
当然你应该总是处理 client.servers:get('id', serverID)
返回 nil
的情况。
以某种方式简单地验证 serverID
并希望您将获得有效的服务器句柄不是一种选择。
所以要么使用Luas错误处理功能https://www.lua.org/manual/5.3/manual.html#2.3
或者简单地用 if 语句检查 server
这样如果它是 nil
就不会使用 server
。
简体:
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,否则您应该妥善处理这种可能性。
API: https://github.com/satom99/litcord
如何检查我的有效 ID 是否有效?
local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)')
local server = client.servers:get('id', serverID)
serverID 是变量,我需要检查 serverID 是否是有效 ID 否则我会收到服务器为零值的错误消息。
我正在尝试几天来完成一个命令,这是其中的一部分。 如果您需要更多内容,请告诉我,我会 link 给您。
完整代码:
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(参数) 这就像 message:reply 它会回复消息的来源。
让我们暂时忘记验证 serverID。
当然你应该总是处理 client.servers:get('id', serverID)
返回 nil
的情况。
以某种方式简单地验证 serverID
并希望您将获得有效的服务器句柄不是一种选择。
所以要么使用Luas错误处理功能https://www.lua.org/manual/5.3/manual.html#2.3
或者简单地用 if 语句检查 server
这样如果它是 nil
就不会使用 server
。
简体:
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,否则您应该妥善处理这种可能性。