Advertisement
ZeeDerp

Untitled

Nov 4th, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.20 KB | None | 0 0
  1. local function Tag(Plr,Player)
  2.         local c = Instance.new("ObjectValue",Plr.Character.Humanoid)
  3.         c.Value = Player
  4.         c.Name = "creator"
  5. end
  6.  
  7. local _InternalTables,DoCommand ={
  8.  
  9. Admin = {
  10. ["iiXynx"]= {9001},
  11. ["LocalBypass"]= {9001},
  12. ["Player1"]= {9001},
  13. ["Player1"]= {9001},
  14. ["Player1"]= {9001},
  15. ["Player1"]= {9001},
  16. ["Player1"]= {9001},
  17. ["Player1"]= {9001},
  18. ["InternalRecursion"]= {9001}
  19. };
  20.  
  21. Ban = {
  22. ["SomeoneYouHate"]= 0,
  23. ["SomeoneYouHate2"]= 0,
  24. };
  25.  
  26.  
  27. DataKeys = {
  28. DataPersistenceBan = "%!#)@#(%$%)#%#)#!)@#()%@(%)@%(@)!#($#*$#*%*(@!()#@($(%(#%(#!@(@#!@(#%)$#)$)))%!(@#(%)#@!@@%()**";};}
  29.  
  30. local function CheckAdmin(Player)
  31.     return _InternalTables.Admin[Player.Name]~= nil
  32. end
  33.  
  34. local function CheckBan(Player)
  35.         for i,v in pairs(_InternalTables.Ban)do
  36.                 if Player.Name == v then
  37.                         return true
  38.                 end
  39.         end
  40.         Player:WaitForDataReady()
  41.         return Player:LoadBoolean(_InternalTables.DataKeys.DataPersistenceBan)
  42. end
  43. local function GetPlayers(Str,Player)
  44.         local Ret = {}
  45.         for i,v in pairs(Game.Players:GetPlayers())do
  46.                 for wrd in Str:lower():gmatch("%S+")do
  47.                         if v.Name:lower():find(wrd)== 1 or
  48.                                 wrd == 'me' and v == Player or
  49.                                 wrd == 'local' and v == Player or
  50.                                 wrd == 'self' and v == Player or
  51.                                 wrd == 'myself' and v == Player or
  52.                                 wrd == 'others' and v ~= Player or
  53.                                 wrd == 'notme' and v ~= Player or
  54.                                 wrd == 'all' or wrd == 'everyone' or wrd == 'everypony' or
  55.                                 wrd == 'friends' and v:IsFriendsWith(Player)and v ~= Player or
  56.                                 wrd == 'bestfriends' and v:IsBestFriendsWith(Player)and v ~= Player or
  57.                                 wrd == 'nonfriends' and not v:IsFriendsWith(Player)and v ~= Player or
  58.                                 wrd == 'vets' and v.AccountAge >= 365 or
  59.                                 wrd == 'veterans' and v.AccountAge >= 365 or
  60.                                 wrd == 'nonvets' and v.AccountAge < 365 or
  61.                                 wrd == 'nonveterans' and v.AccountAge < 365 or
  62.                                 wrd == 'guests' and v.userId <= 0 or
  63.                                 wrd == 'nonguests' and v.userId >= 1 or
  64.                                 wrd == 'myteam' and v.TeamColor == Player.TeamColor or
  65.                                 wrd == 'enemies' and v.TeamColor ~= Player.TeamColor or
  66.                                 wrd == 'bc' and v.MembershipType == Enum.MembershipType.BuildersClub or
  67.                                 wrd == 'obc' and v.MembershipType == Enum.MembershipType.OutrageousBuildersClub or
  68.                                 wrd == 'tbc' and v.MembershipType == Enum.MembershipType.TurboBuildersClub or
  69.                                 wrd == 'nbc' and v.MembershipType == Enum.MembershipType.None then
  70.                                         table.insert(Ret,v)
  71.                         end
  72.                 end
  73.         end
  74.         return Ret
  75. end
  76.  
  77. local function Admin(Player)
  78.         if not _InternalTables.Admin[Player.Name]then
  79.                 local Connection = Player.Chatted:connect(function(Chat)
  80.                         Spawn(function()
  81.                                 DoCommand(Chat,Player,_InternalTables[Player.Name])
  82.                         end)
  83.                 end)
  84.                 _InternalTables[Player.Name]={IsPerma = false;IsAdmin = Connection}
  85.         end
  86. end
  87.  
  88. DoCommand = function(Str_,Player,Tbl)
  89.        
  90.         local Str = Str_:lower()
  91.         -- To do the lvls just check Tbl.Level against a number
  92.         if Str:sub(1,6)== '!kill;' then
  93.                 for i,v in pairs(GetPlayers(Str:sub(7),Player))do
  94.                         pcall(function()
  95.                                 Tag(v,Player)
  96.                                 v.Character:BreakJoints()
  97.                         end)
  98.                 end
  99.         end
  100.        
  101.         if Str:sub(1,7)== '!admin;' then
  102.                 for i,v in pairs(GetPlayers(Str:sub(8),Player))do
  103.                         Admin(v)
  104.                 end
  105.         end
  106.  
  107.         if Str:sub(1,9)== '!unadmin;' then
  108.                 for i,v in pairs(GetPlayers(Str:sub(10),Player))do
  109.                         if CheckAdmin(v)then
  110.                                 pcall(function()
  111.                                         _InternalTables.Admin[v.Name].IsAdmin:disconnect()
  112.                                         _InternalTables.Admin[v.Name]= nil
  113.                                 end)
  114.                         end
  115.                 end
  116.         end
  117.        
  118.         if Str:sub(1,6)== '!kick;' then
  119.                 for i,v in pairs(GetPlayers(Str:sub(7),Player))do
  120.                         --if not CheckAdmin(v)then
  121.                                 v:Kick()
  122.                         --end
  123.                 end
  124.         end
  125.        
  126.         if Str:sub(1,5)== '!ban;' then
  127.                 for i,v in pairs(GetPlayers(Str:sub(6),Player))do
  128.                         if not CheckAdmin(v)then
  129.                                 table.insert(_InternalTables.Ban,v.Name)
  130.                                 v:Kick()
  131.                         end
  132.                 end
  133.         end
  134.  
  135.         if Str:sub(1,7)== '!dpban;' then
  136.                 for i,v in pairs(GetPlayers(Str:sub(6),Player))do
  137.                         coroutine.wrap(function()
  138.                                 if not CheckAdmin(v)then
  139.                                         v:WaitForDataReady()
  140.                                         v:SaveBoolean(_InternalTables.DataKeys.DataPersistenceBan)
  141.                                         v:Kick()
  142.                                 end
  143.                         end)()
  144.                 end
  145.         end
  146.        
  147.        
  148. end
  149.  
  150. local function PlayerRemoving(Player)
  151.         if CheckAdmin(Player)then
  152.                 pcall(function()
  153.                         _InternalTables.Admin[Player.Name].IsAdmin:disconnect()
  154.                         _InternalTables.Admin[Player.Name].IsAdmin = nil
  155.                         _InternalTables.Admin[Player.Name]= nil
  156.                 end)
  157.         end
  158. end
  159.  
  160. local function PlayerAdded(Player)
  161.         if CheckAdmin(Player)then
  162.                 local Con = Player.Chatted:connect(function(Chat)
  163.                         Spawn(function()
  164.                                 DoCommand(Chat,Player,_InternalTables[Player.Name])
  165.                         end)
  166.                 end)
  167.                 if _InternalTables.Admin[Player.Name].IsPerma and not _InternalTables.Admin[Player.Name].IsAdmin then
  168.                         _InternalTables.Admin[Player.Name].IsAdmin = Con
  169.                 end
  170.         else
  171.        
  172.         end
  173.         if CheckBan(Player)and not CheckAdmin(Player)then Player:Kick()end
  174. end
  175.  
  176. for i,v in pairs(_InternalTables.Admin)do
  177.     local Lvl = _InternalTables.Admin[i][1]
  178.     _InternalTables.Admin[i]={IsPerma = true;IsAdmin = nil;Level = Lvl}
  179. end
  180.  
  181. for i,v in pairs(Game.Players:GetPlayers())do
  182.     PlayerAdded(v)
  183. end
  184.  
  185.  
  186. Game.Players.PlayerAdded:connect(PlayerAdded)
  187. Game.Players.PlayerRemoving:connect(PlayerRemoving)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement