Komendy Admina

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Komenda administratora jest słowem kluczowym lub frazą, którą użytkownik z pewnym poziomem kontroli może wpisać do okienka czatu, aby wywołać akcji. Ta biblioteka używa modułów czatu, które umożliwiają łatwe wdrożenie komend administratora na poziomie systemu dziedzicznego. Moduły czatu słuchają wchodzące wiadomości na serwerze i mogą wykonywać działania na pod

Ustawienia

Kiedykolwiek Roblox połączenie załadowuje, sprawdza, czy usługa czatu jest pusta. Jeśli nie znajdzie komponentów, które potrzebuje, miejsce wстави je najnowszą wersję tych komponentów. Oznacza to, że nakrywanie lub dokonywanie zmian w tych komponentach w doświadczeniu zapobiegnie im aktualizację.

Pierwszym krokiem w ustawieniu biblioteki komend administratora jest dodanie nowego modułu czatu do usługi czatu. Biblioteka w tym samouczniku zajmuje się ciężkim ładowaniem wykonanym przez moduł czatu, więc jedynym obiektem, który musisz dodać do usługi czatu, jest nowy ModuleScript. Imię swojego modułu można dowolnie użyć, ale suger

Wprowadzanie nowych komend

Zamiast wdrożenia większości logiki modułu czatu po prostu wymagasz modułu biblioteki, który wykonuje dużą część pracy i dodaje dodatkowe funkcjonalności. najprostszy sposób, aby dodać bibliotekę do swojego modułu, to wymaganie jej przez jej assetId na górze twojego skryptu.


local AdminCommands = require(1163352238)

Ten moduł zwraca tabelę funkcji, z funkcją Run jako najważniejszą. Biblioteka ma funkcję Run dla swojego modułu czatu. Jest ważne, aby AdminCommands zwróciła tę funkcję Run dla modułu czatu. Funkcja jest zindeksowana przez jej


return AdminCommands.Run

Pomiędzy tymi dwoma liniami kodu wdroż swoje komendy i wszystkie niezbędne funkcje pomocnicze.

Aby wiązać funkcję z biblioteką, użyj funkcji BindCommand z AdminCommands. Gdy wiążesz komendę, będziesz musiał określić tabel


AdminCommands:BindCommand({"keyword1", "keyword2"}, commandName, 1, "Optional description")

Aby odłączyć, użyj UnbindCommand i określ słowo kluczowe do odłączenia.


AdminCommands:UnbindCommand({"keyword1"})

Ogólnie rzecz biorąc, treść twojego skryptu AdminCommands powinna wyglądać obserwuje:


local AdminCommands = require(1163352238)
local Utilities = AdminCommands.Utilities
function commandFunction(commandData)
-- Kod komendy tutaj
-- Wróщает prawdziwy, jeśli się udało, a fałszywy w innym przypadku
end
AdminCommands:BindCommand({"keyword1", "keyword2"}, commandFunction, 1, "Optional description")
return AdminCommands.Run

Możesz zauważyć, że funkcja przykładu wymaga parametru nazyjącego się commandData. Ten parametr jest argumentem tabeli przekazanym wszystkim powiązanym funkcjom administratora po wykonaniu przez bibliotekę. Tabela zawiera użyteczne informacje o komendzie, która została wymówiona i użytkownik, który ją wymówił. Ma następujące pola:

  • Głośnik: ChatSpeaker
  • Wiadomość: string
  • ChannelName: string
  • Komenda: string

Ważne jest, aby zawsze oczekiwać commandData jako parametru funkcji komendy. Na przykład, jeśli masz komendę nazwaną "explode", która wymaga Player parametru do określenia, funkcja będzie wyglądać jak eksplozja(komenda danych użytkownika, parametr).

| Funkcja | Parametry | Powrót | | | | | | | | | | | | | | | | | | BindCommand() | table funkcje ID, funkcja funkcjaToExecute, poziom minimalnyPermissionLevel, string opis | boulogiczny | | UnbindCommand() | table funkcje ID | | | | | | | |

Użyteczności

Biblioteka ma już kilka wbudowanych funkcji pomocniczych zwanyych Utilities, które możesz użyć. Store AdminCommand.Utilities w zmiennej lub odniesieniu bezpośrednio.


local Utilities = AdminCommands.Utilities

Obecnymi funkcjami utilities są:

| Funkcja | Parametry | Powrót | |

Przykładowe komendy

Przydatnym rozkazem do posiadania będzie ten, który drukuje listę wszystkich dostępnych komend, które użytkownicy mają dostępne. Ten rozkaz wygibt każdy komendy związany z biblioteką i kilka jego właściwości.


-- Drukuje listę wszystkich związanych komend
function listCommand(commandData)
Utilities:SendSystemMessage(commandData, "The following commands are available:")
-- Przyjrz się każdemu komendom i wydrukuj je
for id, command in PublicAPI:GetCommands() do
Utilities:SendSystemMessage(commandData, string.format("%* requires permission %*.", id, command.Permission))
end
return true
end
AdminCommands:BindCommand({"list"}, listCommand, 0, "Prints a list of commands.")

Kolejnym przydatnym poleceniem jest umożliwienie użytkownikom błysku. Ten parametr wymaga jednego parametru, gdy mówiony – nazwa użytkownika docelowego. Jeśli użytkownik istnieje, polecenie stworzy obiekt Błysku w części HumanoidRootPart tego użytkownika.


-- Daje błyski postaci określonego gracza
function sparklesCommand(commandData)
-- Błąd, jeśli nie podano/powiedziano parametrów
if #commandData.Parameters == 0 then
return Utilities:NoPlayerSpecified(commandData)
end
-- Loop przez parametry (wykonaj na każdym podanym imieniu gracza)
for index = 1, #commandData.Parameters do
local parameter = commandData.Parameters[index]
if (parameter == "me" or parameter == "") then parameter = commandData.Speaker.Name end -- Jeśli parametr to ja, to użytkownik musi odnieść się do siebie
-- Użyj funkcji pomocniczej, aby znaleźć postać gracza i dodać błyski
local character = Utilities:GetCharacter(parameter)
if character then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:FindFirstChild("HumanoidRootPart")
Utilities:SendSystemSuccessMessage(commandData, string.format(commandData.Speaker.Name .. "added sparkles to " .. parameter))
else
Utilities:SendSystemErrorMessage(commandData, string.format("%* is not a valid player.", parameter))
return false
end
end
return true
end
AdminCommands:BindCommand({"sparkles"}, sparklesCommand, 1, "Gives the specified player sparkles")

Możesz również dodać komendę eksplozji z samouczka Uruchom Komendę Admina. Ta komenda również bierze nazwę użytkownika jako parametr.


-- Zweryfikuje, że podany model jest postacią, i doda eksplozję do jego HumanoidRootPart
local function makeExplosion(character)
if character and character:FindFirstChild("HumanoidRootPart") then
local explosion = Instance.new("Explosion")
explosion.Position = character.HumanoidRootPart.Position
explosion.Parent = character.HumanoidRootPart
return true
end
return false
end
-- Spowoduje eksplozję postaci określonego gracza
function explodeCommand(commandData)
-- Błąd, jeśli nie podano/powiedziano parametrów
if #commandData.Parameters == 0 then
return Utilities:NoPlayerSpecified(commandData)
end
for index = 1, #commandData.Parameters do
local parameter = tostring(commandData.Parameters[index])
if (parameter == "me" or parameter == "") then parameter = commandData.Speaker.Name end -- Jeśli parametr to ja, to użytkownik musi odnieść się do siebie
-- Użyj funkcji pomocniczej, aby znaleźć postać gracza i dodać eksplozję
local character = Utilities:GetCharacter(parameter)
local success = makeExplosion(character)
if success then
Utilities:sendSystemSuccessMessage(commandData, string.format(commandData.Speaker.Name .. " made" .. parameter .. " explode."))
else
Utilities:SendSystemErrorMessage(commandData, string.format("%* is not a valid player.", parameter))
return false
end
end
return true
end
AdminCommands:BindCommand({"explode"}, explodeCommand, 1, "Makes the specified player explode.")

Biblioteka upoważnień

Jeśli nieadministrator próbuje użyć komendy takiej jak ta, która ma wyższy poziom uprawnień niż 0, nie zostanie ona załączona. System komend używa odrębnej biblioteki uprawnień, do której automatycznie przydzielany jest poziom uprawnień matematyczny.5. Użytkownicy mogą być dodawani przy użyciu następujących funkcji na obiekcie modułu AdminCommands:


SetUserPermission(number requesterUserId, number targetUserId, permissionLevel) -> bool
SetGroupRankPermission(number requesterUserId, number targetGroupId, number targetRankId, permissionLevel) -> bool

| Funkcja | Parametry | Powrót | |

Moduł Szybkiego Rozpoczynania

Dla łatwiejszego uruchomienia możesz również użyć tego Szybki start, który jest modułem, który już zaimplementował bibliotekę komend administratora. Model jest modułem z tego samego formatu, jak opisano powyżej. Ponadto, moduł ma kilka komend już wbudowanych, aby nie musiałeś ponownie implementować.

| Komenda/Zwiąż | Parametr przem