2016-07-21 5 views
0

API:https://github.com/satom99/litcordКак я могу проверить, если мой «переменная» является допустимым «ID»

Как я могу проверить мой valiable, если его действительное удостоверение личности?

local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)')  
local server = client.servers:get('id', 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() Я могу объяснить это лучше, если я скачу вам и свяжу вам все. Он должен проверить, принят ли идентификатор сервера из моей команды. – jepjep40

+0

ok geändert .... – jepjep40

ответ

0

Давайте забудем о проверке идентификатора сервера в течение одной минуты.

Конечно, вы всегда должны обращаться с корпусом client.servers:get('id', serverID), сохраняя nil.

Простая проверка serverID как-то и надеющийся на то, что вы получите верный дескриптор сервера, не является вариантом.

Так или использовать LUAS ошибки функции обработки https://www.lua.org/manual/5.3/manual.html#2.3

или просто проверить server с, если заявление, так что вы не будете использовать 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

И у вас есть скайп: о? Тогда просто духота я добавил после моей первой СЭП и у вас есть мое имя скайпа, если вы затем добавить другую часть вместе. Я пишу его так, что его не так просто узнать. – jepjep40

+0

Чувство переполнения стека является задавать вопросы так, что проблема будет видно из, и дать ответы, чтобы помочь каждому из имеет ту же проблему. SO не является посредником Skype. Редактировать ваш вопрос так, что вы говорите мне Skype в нем. – Piglet

+0

Изменилось ли это. – jepjep40