Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Admin Panel Ban script failing to ban players? Please help!

Asked by 5 years ago

Hello fellow scripters.

I am currently making an admin panel for my game, and so far I have kick, kill, broadcast and shutdown events working. I also have a ban event but that does not seem to be working? This is the reason I am here.

I have a GUI, well, It's better to show you.

https://www.youtube.com/watch?v=eF5is-kjddQ So, as it shows in the video, the kick script works but not the ban script.

Here is the ban script:

function script.Parent.OnServerInvoke(player, Data)

    local Target = Data[1]
    local Reason = Data[2]

    local Player = game.Players:FindFirstChild(Target)

    local HasPlayer = not Player == nil

    local HasReason = not string.len(Reason) == 0   

    local DataStore = game:GetService("DataStoreService"):GetDataStore("motfAdminPanel")

    local ID = nil  

    if HasPlayer then

        ID = Player.UserId

        for _,v in next, _G.immuneToBan do
            if v == ID then
                return "exempt"
            end
        end

        if HasReason then
            Player:Kick("You have been banned.");
        else
            Player:Kick("You have been banned for the following reason: " .. Reason)
        end 
    end

    if ID == nil then
        local success = pcall(function() ID = game.Players:GetUserIdFromNameAsync(Target) end)

        if not success then
            return "noplayer"
        end
    end

    for _,v in next, _G.immuneToBan do
        if v == ID then
            return "exempt"
        end
    end

    if ID < 0 then
        return "guest"
    end 

    if HasReason then
        DataStore:SetAsync(ID, Reason)
    else
        DataStore:SetAsync(ID, 1);
    end

    return "banned"

end

And if it's required, here is the kick script:

function script.Parent.OnServerInvoke(player, Data)

    local Target = Data[1]
    local Reason = Data[2]

    local Player = game.Players:FindFirstChild(Target)

    if Player == nil then
        return false
    end

    if string.len(Reason) == 0 then
        Player:Kick("You have been kicked.");
    else
        Player:Kick("You have been kicked for the following reason: " .. Reason)
    end

    return true
end

These are all in events, as shown in this picture: https://imgur.com/GFudgvE

I would really appreciate help. Thanks, guys!

0
Also, I will be checking this post regularly, so if you have any questions please feel free to ask! Officer_Lost -2 — 5y
0
BUMP Officer_Lost -2 — 5y

Answer this question