diff --git a/MainModule/Server/Commands/Players.lua b/MainModule/Server/Commands/Players.lua index fa35dc4f6e..b4fe15fa31 100644 --- a/MainModule/Server/Commands/Players.lua +++ b/MainModule/Server/Commands/Players.lua @@ -58,7 +58,7 @@ return function(Vargs, env) Desc = "["..cStr.."] "..v.Description, Filter = cStr }) - cmdCount = cmdCount + 1 + cmdCount += 1 end end @@ -128,7 +128,7 @@ return function(Vargs, env) Remote.MakeGui(plr,"Notepad",{}) end }; - + Paint = { Prefix = Settings.PlayerPrefix; Commands = {"paint","canvas","draw"}; @@ -150,7 +150,7 @@ return function(Vargs, env) Functions.Hint('"'..Settings.Prefix..'cmds"',{plr}) end }; - + NotifyMe = { Prefix = Settings.PlayerPrefix; Commands = {"notifyme"}; @@ -168,6 +168,96 @@ return function(Vargs, env) end }; + RandomNum = { + Prefix = Settings.PlayerPrefix; + Commands = {"rand","random","randnum","dice"}; + Args = {"num m";"num n"}; + Description = "Generates a number using Lua's math.random"; + AdminLevel = "Players"; + Function = function(plr,args) + assert((not args[1]) or tonumber(args[1]), "Argument(s) provided must be numbers") + assert((not args[2]) or tonumber(args[2]), "Arguments provided must be numbers") + + if args[2] then + assert(args[2] >= args[1], "Second argument n cannot be smaller than first") + Functions.Hint(math.random(args[1], args[2]), {plr}) + elseif args[1] then + Functions.Hint(math.random(args[1]), {plr}) + else + Functions.Hint(math.random(), {plr}) + end + end + }; + + BrickColorList = { + Prefix = Settings.PlayerPrefix; + Commands = {"brickcolors";"colors";"colorlist"}; + Args = {}; + Description = "Shows you a list of Roblox BrickColors for reference"; + AdminLevel = "Players"; + Function = function(plr,args) + local children = { + Core.Bytecode([[Object:ResizeCanvas(false, true, false, false, 5, 5)]]); + } + + local brickColorNames = {} + for i = 1, 127 do + table.insert(brickColorNames, BrickColor.palette(i).Name) + end + table.sort(brickColorNames) + + for i, bc in ipairs(brickColorNames) do + bc = BrickColor.new(bc) + table.insert(children, { + Class = "TextLabel"; + Size = UDim2.new(1, -10, 0, 30); + Position = UDim2.new(0, 5, 0, 30*(i-1)); + BackgroundTransparency = 1; + TextXAlignment = "Left"; + Text = " "..bc.Name; + ToolTip = ("RGB: %d, %d, %d | Num: %d"):format(bc.r*255, bc.g*255, bc.b*255, bc.Number); + ZIndex = 1; + Children = { + { + Class = "Frame"; + BackgroundColor3 = bc.Color; + Size = UDim2.new(0, 80, 1, -4); + Position = UDim2.new(1, -82, 0, 2); + ZIndex = 2; + } + }; + }) + end + + Remote.MakeGui(plr, "Window", { + Name = "BrickColorList"; + Title = "BrickColors"; + Size = {270, 300}; + MinSize = {150, 100}; + Content = children; + Ready = true; + }) + end + }; + + MaterialList = { + Prefix = Settings.PlayerPrefix; + Commands = {"materials";"materiallist","mats"}; + Args = {}; + Description = "Shows you a list of Roblox materials for reference"; + AdminLevel = "Players"; + Function = function(plr,args) + local mats = { + "Brick", "Cobblestone", "Concrete", "CorrodedMetal", "DiamondPlate", "Fabric", "Foil", "ForceField", "Glass", "Granite", + "Grass", "Ice", "Marble", "Metal", "Neon", "Pebble", "Plastic", "Slate", "Sand", "SmoothPlastic", "Wood", "WoodPlanks" + } + for i, mat in ipairs(mats) do + mats[i] = {Text = mat; Desc = "Enum value: "..Enum.Material[mat].Value} + end + Remote.MakeGui(plr,"List",{Title = "Materials"; Tab = mats}) + end + }; + ClientTab = { Prefix = Settings.PlayerPrefix; Commands = {"client";"clientsettings","playersettings"}; @@ -294,7 +384,7 @@ return function(Vargs, env) OnIgnore = Core.Bytecode("return false"); }) - num = num+1 + num += 1 if ret then if not answered then answered = true @@ -406,39 +496,45 @@ return function(Vargs, env) AdminLevel = "Players"; Function = function(plr,args) local usage={ - 'NOTE: This info is temporary.'; - 'A revamped user manual is being made.'; ''; 'Mouse over things in lists to expand them'; 'You can also resize windows by dragging the edges'; ''; - 'Commands:'; - 'Timeban, Works with non-ingame players, '.. Settings.Prefix ..'tban Player time(d/h/m/s) | Example: '.. Settings.Prefix ..'timeban Sceleratis 10h (10 hours ban), d = days, h = hour, m = minutes, s = seconds'; - 'Special Functions:'; - 'Ex: '..Settings.Prefix..'kill FUNCTION, so like '..Settings.Prefix..'kill '..Settings.SpecialPrefix..'all'; - 'Put /e in front to silence it (/e '..Settings.Prefix..'kill scel) or enable chat command hiding in client settings'; - ''..Settings.SpecialPrefix..'me - Runs a command on you'; - ''..Settings.SpecialPrefix..'all - Runs a command on everyone'; - ''..Settings.SpecialPrefix..'admins - Runs a command on all admins in the game'; - ''..Settings.SpecialPrefix..'nonadmins - Same as !admins but for people who are not an admin'; - ''..Settings.SpecialPrefix..'others - Runs command on everyone BUT you'; - ''..Settings.SpecialPrefix..'random - Runs command on a random person'; - ''..Settings.SpecialPrefix..'friends - Runs command on anyone on your friends list'; - '%TEAMNAME - Runs command on everyone in the team TEAMNAME Ex: '..Settings.Prefix..'kill %raiders'; - '$GROUPID - Run a command on everyone in the group GROUPID, Will default to the GroupId setting if no id is given'; + 'Put /e in front to silence commands in chat (/e '..Settings.Prefix..'kill scel) or enable chat command hiding in client settings'; + 'Player commands can be used by anyone, these commands have '..Settings.PlayerPrefix..' infront, such as '..Settings.PlayerPrefix..'info and '..Settings.PlayerPrefix..'rejoin'; + ''; + '――――― Player Selectors ―――――'; + 'Usage example: '..Settings.Prefix..'kill '..Settings.SpecialPrefix..'all (where '..Settings.SpecialPrefix..'all is the selector)'; + ''..Settings.SpecialPrefix..'me - Yourself'; + ''..Settings.SpecialPrefix..'all - Everyone in the server'; + ''..Settings.SpecialPrefix..'admins - Admin in the server'; + ''..Settings.SpecialPrefix..'nonadmins - Non-admins (normal players) in the server'; + ''..Settings.SpecialPrefix..'others - Everyone except yourself'; + ''..Settings.SpecialPrefix..'random - A random person in the server'; + '#NUM - NUM random players in the server '..Settings.Prefix..'ff #5 will ff 5 random players.'; + ''..Settings.SpecialPrefix..'friends - Your friends who are in the server'; + '%TEAMNAME - Members of the team TEAMNAME Ex: '..Settings.Prefix..'kill %raiders'; + '$GROUPID - Members of the group with ID GROUPID (number in the Roblox group webpage URL)'; '-PLAYERNAME - Will remove PLAYERNAME from list of players to run command on. '..Settings.Prefix..'kill all,-scel will kill everyone except scel'; - '#NUMBER - Will run command on NUMBER of random players. '..Settings.Prefix..'ff #5 will ff 5 random players.'; - 'radius-NUMBER -- Lets you run a command on anyone within a NUMBER stud radius of you. '..Settings.Prefix..'ff radius-5 will ff anyone within a 5 stud radius of you.'; + 'radius-NUM -- Anyone within a NUM-stud radius of you. '..Settings.Prefix..'ff radius-5 will ff anyone within a 5-stud radius of you.'; ''; - 'Certain commands can be used by anyone, these commands have '..Settings.PlayerPrefix..' infront, such as '..Settings.PlayerPrefix..'clean and '..Settings.PlayerPrefix..'rejoin'; - ''..Settings.Prefix..'kill me,noob1,noob2,'..Settings.SpecialPrefix..'random,%raiders,$123456,!nonadmins,-scel'; + '――――― Repetition ―――――'; + 'Multiple player selections - '..Settings.Prefix..'kill me,noob1,noob2,'..Settings.SpecialPrefix..'random,%raiders,$123456,'..Settings.SpecialPrefix..'nonadmins,-scel'; 'Multiple Commands at a time - '..Settings.Prefix..'ff me '..Settings.BatchKey..' '..Settings.Prefix..'sparkles me '..Settings.BatchKey..' '..Settings.Prefix..'rocket jim'; - 'You can add a wait if you want; '..Settings.Prefix..'ff me '..Settings.BatchKey..' !wait 10 '..Settings.BatchKey..' '..Settings.Prefix..'m hi we waited 10 seconds'; + 'You can add a delay if you want; '..Settings.Prefix..'ff me '..Settings.BatchKey..' !wait 10 '..Settings.BatchKey..' '..Settings.Prefix..'m hi we waited 10 seconds'; ''..Settings.Prefix..'repeat 10(how many times to run the cmd) 1(how long in between runs) '..Settings.Prefix..'respawn jim'; - 'Place HeadAdmins can edit some settings in-game via the '..Settings.Prefix..'settings command'; - 'Please refer to the Tips and Tricks section under the settings in the script for more detailed explanations' + ''; + '――――― Reference Info ―――――'; + ''..Settings.Prefix..'cmds for a list of available commands'; + ''..Settings.Prefix..'cmdinfo <command w/o prefix> for detailed info about a command'; + ''..Settings.PlayerPrefix..'brickcolors for a list of BrickColors'; + ''..Settings.PlayerPrefix..'materials for a list of materials'; + ''; + ''..Settings.Prefix..'capes for a list of preset admin capes'; + ''..Settings.Prefix..'musiclist for a list of preset audios'; + ''..Settings.Prefix..'insertlist for a list of insertable assets using '..Settings.Prefix..'insert'; } - Remote.MakeGui(plr,"List",{Title = 'Usage', Tab = usage, Size = {280, 240}, RichText = true}) + Remote.MakeGui(plr,"List",{Title = 'Usage', Tab = usage, Size = {300, 250}, RichText = true}) end }; @@ -580,7 +676,7 @@ return function(Vargs, env) end end };]] - + InspectAvatar = { Prefix = Settings.PlayerPrefix; Commands = {"inspectavatar";"avatarinspect";"viewavatar";"examineavatar";}; @@ -608,7 +704,7 @@ return function(Vargs, env) Remote.LoadCode(plr,[[service.StarterGui:SetCore("DevConsoleVisible",true)]]) end }; - + NumPlayers = { Prefix = Settings.PlayerPrefix; Commands = {"pnum","numplayers","playercount"}; @@ -633,7 +729,7 @@ return function(Vargs, env) end end }; - + TimeDate = { Prefix = Settings.Prefix; Commands = {"timedate";"date";"datetime";}; @@ -681,3 +777,4 @@ return function(Vargs, env) } end +