Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [[ 1x_Gacha's :ok_hand:
- testing = false
- local whitelist = {}
- local bypass = {}
- local serverban = {}
- local log = {}
- i = 0
- local cmd = '[[k ' -- Normal Kick
- local cmds = '[[s ' -- Server Ban
- local cmdrs = '[[-s ' -- Remove Server Ban
- local cmdp = '[[p ' -- Permanent Ban
- local cmdr = '[[-p ' -- Remove Permanent Ban
- local cmdl = '[[lp' -- Permanent Ban List
- local cmdm = '[[m' -- Show Menu
- local Players = game:GetService('Players')
- local dds = game:GetService('DataStoreService')
- local ds = dds:GetDataStore('GCR_Permanent_Bans_List')
- local storage = game:GetService('ReplicatedStorage')
- local remote = storage:WaitForChild('Remotes'):WaitForChild('[1]Secure')
- local key = 'aVe10n_GCR_Store2'
- local function FindPlayer(target)
- print(target)
- if Players:FindFirstChild(target) then return target end
- for _, players in pairs(Players:GetChildren()) do
- if string.match(players.Name:sub(1, target:len()):lower(), (target:lower())) then
- return players.Name
- end
- end
- end
- local function checkPlayer(player)
- if testing then return true end
- for _,v in pairs(whitelist)do
- local id = game.Players[player.Name].UserId
- if v == id then
- return true
- end
- end
- end
- local function updatePlayers()
- for i,v in pairs(game.Players:GetChildren())do
- if checkPlayer(v) then
- local t = {log = {}, bans = {}, pbans = {}}
- table.insert(t.log, log)
- table.insert(t.bans, serverban)
- table.insert(t.pbans, ds:GetAsync(key))
- remote:FireClient(v, 'Update', t)
- end
- end
- end
- local function onChatted(msg, player)
- if checkPlayer(player) then
- if msg:sub(1, cmds:len()):lower()== cmds:lower() then
- local playername = msg:sub(cmds:len() + 1)
- local findplayer = FindPlayer(playername)
- if findplayer then
- table.insert(serverban, findplayer)
- local plyr = game.Players:FindFirstChild(findplayer)
- i = i+1
- table.insert(log, i, {player = plyr.Name.." | "..plyr.UserId, action = "Server Ban", subduer = player.Name})
- plyr:Kick('Contact a Developer! Code : eeFtuYa')
- updatePlayers()
- end
- end
- if msg:sub(1, cmd:len()):lower()== cmd:lower() then
- local playername = msg:sub(cmd:len() + 1)
- local findplayer = FindPlayer(playername)
- if findplayer then
- local plyr = game.Players:FindFirstChild(findplayer)
- i = i+1
- table.insert(log, i, {player = plyr.Name.." | "..plyr.UserId, action = "Kick", subduer = player.Name})
- plyr:Kick('Contact a Developer! Code : eeFtuYa')
- updatePlayers()
- end
- end
- if msg:sub(1, cmdm:len()):lower() == cmdm:lower() then
- remote:FireClient(player, 'Open')
- end
- if msg:sub(1, cmdrs:len()):lower()== cmdrs:lower() then
- local target = msg:sub(cmd:len() + 1)
- for i,v in pairs(serverban)do
- if v == target then
- table.remove(serverban, target)
- i = i+1
- table.insert(log, i, {player = target, action = "Remove Server Ban", subduer = player.Name})
- updatePlayers()
- end
- end
- end
- if msg:sub(1, cmdp:len()):lower()== cmdp:lower() then
- local playername = msg:sub(cmdp:len() + 1)
- local findplayer = FindPlayer(playername)
- local IsBanned = false
- if findplayer then
- local plyr = game.Players:FindFirstChild(findplayer)
- local t = {}
- for i,v in pairs(ds:GetAsync(key))do
- if v == plyr.UserId then
- plyr:Kick('Contact a Developer! Code : eeFtuYa')
- IsBanned = true
- end
- table.insert(t, v)
- end
- if IsBanned then return end
- table.insert(t, plyr.UserId)
- ds:SetAsync(key, t)
- i = i+1
- table.insert(log, i, {player = plyr.Name.." | "..plyr.UserId, action = "Permanent Ban", subduer = player.Name})
- plyr:Kick('Contact a Developer! Code : eeFtuYa')
- updatePlayers()
- end
- end
- if msg:sub(1, cmdr:len()):lower()== cmdr:lower() then
- local playername = msg:sub(cmdr:len() + 1)
- local t = {}
- for i,v in pairs(ds:GetAsync(key))do
- if tostring(v) ~= playername or not string.match(Players:GetNameFromUserIdAsync(v):sub(1, playername:len()):lower(), (playername:lower())) then --string.match(players.Name:sub(1, target:len()):lower(), (target:lower()))
- table.insert(t, v)
- end
- end
- warn('Removing Player From Permanent Bans! : '..playername)
- ds:SetAsync(key, t)
- i = i+1
- table.insert(log, i, {player = playername, action = "Remove Permanent Ban", subduer = player.Name})
- updatePlayers()
- wait(.5)
- warn('\t Current Permanent Bans! \n ---------')
- for i,v in pairs(ds:GetAsync(key))do
- warn(v..'\n -')
- end
- warn('\t [End] \n ---------')
- end
- if msg:sub(1, cmdl:len()):lower()== cmdl:lower() then
- remote:FireClient(player, 'List')
- warn('\t Current Permanent Bans! \n ---------')
- for i,v in pairs(ds:GetAsync(key))do
- warn(v..'\n -')
- end
- warn('\t [End] \n ---------')
- end
- end
- end
- game.Players.PlayerAdded:Connect(function(player)
- for _,v in pairs(serverban)do if v == player.Name then print(player.Name..' | Server Ban! | Code : GatYuVC') player:Kick('Contact a Developer! Code : GatYuVC') end end
- if player.AccountAge <= 15 then for _,v in pairs(bypass)do if v == player.UserId then return end end print(player.Name..' | '..player.AccountAge..' | Code : FadQEc')player:Kick('Contact a Developer! Code : FadQEc') end
- if ds:GetAsync(key) then
- for _,v in pairs(ds:GetAsync(key))do if v == player.UserId then print(player.Name..' | Permanent Ban! | Code : vAleUio') player:Kick('Contact a Developer! Code : vAleUio') end end
- else
- local t = {10101010101}
- ds:SetAsync(key, t)
- end
- if checkPlayer(player)then
- local ui = script.GachaSecurityUI:Clone()
- ui.Parent = player:WaitForChild('PlayerGui')
- updatePlayers()
- end
- player.Chatted:Connect(function(msg)
- if checkPlayer(player) then
- onChatted(msg, player)
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement