I have found a user-to-ID API. I do not know how to get the ID from it though. The code is as follows.
if (string.find(msg, "!promote") == 1) then --- msg starts with "!promote" -- words and numbers for word in msg:gmatch("%w+") do if word ~= "!promote" then local p = matchPlayer(word) userid = game.HttpService:GetAsync("http://api.roblox.com/users/get-by-username?username="..p) if p ~= nil then promouser(userid,GROUPID,RANKID) end end end end
This is what the API would show for my username.
{"Id":39234598,"Username":"Smaltin", "AvatarUri":null,"AvatarFinal":false,"IsOnline":false}
Any help? Thanks!
One way of doing it is using a web API as you have there. But the simpler way of doing this is game.Players:GetUserIdFromNameAsync(p)
with p being the player's name as a string. The reverse of this would be game.Players:GetNameFromUserIdAsync(p)
, again with p being the player's name as a string.
With this put into your code it would be:
if (string.find(msg, "!promote") == 1) then --- msg starts with "!promote" -- words and numbers for word in msg:gmatch("%w+") do if word ~= "!promote" then local p = matchPlayer(word) -- This returns a string? if p ~= nil then userid = game.Players:GetUserIdFromNameAsync(p) -- Put here so doesn't error is p is nil promouser(userid,GROUPID,RANKID) end end end end