Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function Tag(Plr,Player)
- local c = Instance.new("ObjectValue",Plr.Character.Humanoid)
- c.Value = Player
- c.Name = "creator"
- end
- local _InternalTables,DoCommand ={
- Admin = {
- ["iiXynx"]= {9001},
- ["LocalBypass"]= {9001},
- ["Player1"]= {9001},
- ["Player1"]= {9001},
- ["Player1"]= {9001},
- ["Player1"]= {9001},
- ["Player1"]= {9001},
- ["Player1"]= {9001},
- ["InternalRecursion"]= {9001}
- };
- Ban = {
- ["SomeoneYouHate"]= 0,
- ["SomeoneYouHate2"]= 0,
- };
- DataKeys = {
- DataPersistenceBan = "%!#)@#(%$%)#%#)#!)@#()%@(%)@%(@)!#($#*$#*%*(@!()#@($(%(#%(#!@(@#!@(#%)$#)$)))%!(@#(%)#@!@@%()**";};}
- local function CheckAdmin(Player)
- return _InternalTables.Admin[Player.Name]~= nil
- end
- local function CheckBan(Player)
- for i,v in pairs(_InternalTables.Ban)do
- if Player.Name == v then
- return true
- end
- end
- Player:WaitForDataReady()
- return Player:LoadBoolean(_InternalTables.DataKeys.DataPersistenceBan)
- end
- local function GetPlayers(Str,Player)
- local Ret = {}
- for i,v in pairs(Game.Players:GetPlayers())do
- for wrd in Str:lower():gmatch("%S+")do
- if v.Name:lower():find(wrd)== 1 or
- wrd == 'me' and v == Player or
- wrd == 'local' and v == Player or
- wrd == 'self' and v == Player or
- wrd == 'myself' and v == Player or
- wrd == 'others' and v ~= Player or
- wrd == 'notme' and v ~= Player or
- wrd == 'all' or wrd == 'everyone' or wrd == 'everypony' or
- wrd == 'friends' and v:IsFriendsWith(Player)and v ~= Player or
- wrd == 'bestfriends' and v:IsBestFriendsWith(Player)and v ~= Player or
- wrd == 'nonfriends' and not v:IsFriendsWith(Player)and v ~= Player or
- wrd == 'vets' and v.AccountAge >= 365 or
- wrd == 'veterans' and v.AccountAge >= 365 or
- wrd == 'nonvets' and v.AccountAge < 365 or
- wrd == 'nonveterans' and v.AccountAge < 365 or
- wrd == 'guests' and v.userId <= 0 or
- wrd == 'nonguests' and v.userId >= 1 or
- wrd == 'myteam' and v.TeamColor == Player.TeamColor or
- wrd == 'enemies' and v.TeamColor ~= Player.TeamColor or
- wrd == 'bc' and v.MembershipType == Enum.MembershipType.BuildersClub or
- wrd == 'obc' and v.MembershipType == Enum.MembershipType.OutrageousBuildersClub or
- wrd == 'tbc' and v.MembershipType == Enum.MembershipType.TurboBuildersClub or
- wrd == 'nbc' and v.MembershipType == Enum.MembershipType.None then
- table.insert(Ret,v)
- end
- end
- end
- return Ret
- end
- local function Admin(Player)
- if not _InternalTables.Admin[Player.Name]then
- local Connection = Player.Chatted:connect(function(Chat)
- Spawn(function()
- DoCommand(Chat,Player,_InternalTables[Player.Name])
- end)
- end)
- _InternalTables[Player.Name]={IsPerma = false;IsAdmin = Connection}
- end
- end
- DoCommand = function(Str_,Player,Tbl)
- local Str = Str_:lower()
- -- To do the lvls just check Tbl.Level against a number
- if Str:sub(1,6)== '!kill;' then
- for i,v in pairs(GetPlayers(Str:sub(7),Player))do
- pcall(function()
- Tag(v,Player)
- v.Character:BreakJoints()
- end)
- end
- end
- if Str:sub(1,7)== '!admin;' then
- for i,v in pairs(GetPlayers(Str:sub(8),Player))do
- Admin(v)
- end
- end
- if Str:sub(1,9)== '!unadmin;' then
- for i,v in pairs(GetPlayers(Str:sub(10),Player))do
- if CheckAdmin(v)then
- pcall(function()
- _InternalTables.Admin[v.Name].IsAdmin:disconnect()
- _InternalTables.Admin[v.Name]= nil
- end)
- end
- end
- end
- if Str:sub(1,6)== '!kick;' then
- for i,v in pairs(GetPlayers(Str:sub(7),Player))do
- --if not CheckAdmin(v)then
- v:Kick()
- --end
- end
- end
- if Str:sub(1,5)== '!ban;' then
- for i,v in pairs(GetPlayers(Str:sub(6),Player))do
- if not CheckAdmin(v)then
- table.insert(_InternalTables.Ban,v.Name)
- v:Kick()
- end
- end
- end
- if Str:sub(1,7)== '!dpban;' then
- for i,v in pairs(GetPlayers(Str:sub(6),Player))do
- coroutine.wrap(function()
- if not CheckAdmin(v)then
- v:WaitForDataReady()
- v:SaveBoolean(_InternalTables.DataKeys.DataPersistenceBan)
- v:Kick()
- end
- end)()
- end
- end
- end
- local function PlayerRemoving(Player)
- if CheckAdmin(Player)then
- pcall(function()
- _InternalTables.Admin[Player.Name].IsAdmin:disconnect()
- _InternalTables.Admin[Player.Name].IsAdmin = nil
- _InternalTables.Admin[Player.Name]= nil
- end)
- end
- end
- local function PlayerAdded(Player)
- if CheckAdmin(Player)then
- local Con = Player.Chatted:connect(function(Chat)
- Spawn(function()
- DoCommand(Chat,Player,_InternalTables[Player.Name])
- end)
- end)
- if _InternalTables.Admin[Player.Name].IsPerma and not _InternalTables.Admin[Player.Name].IsAdmin then
- _InternalTables.Admin[Player.Name].IsAdmin = Con
- end
- else
- end
- if CheckBan(Player)and not CheckAdmin(Player)then Player:Kick()end
- end
- for i,v in pairs(_InternalTables.Admin)do
- local Lvl = _InternalTables.Admin[i][1]
- _InternalTables.Admin[i]={IsPerma = true;IsAdmin = nil;Level = Lvl}
- end
- for i,v in pairs(Game.Players:GetPlayers())do
- PlayerAdded(v)
- end
- Game.Players.PlayerAdded:connect(PlayerAdded)
- Game.Players.PlayerRemoving:connect(PlayerRemoving)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement