Sebuah komando admin adalah kata kunci atau frasa yang seorang pengguna dengan tingkat kontrol tertentu dapat mengetikkan di jendela chat untuk menetapkan action. Libra ini menggunakan modul chat, yang memungkinkan penerapan mudah komando admin di atas sistem chat legacy. Modul chat mendengarkan pesan yang masuk di server dan dapat mengeksekusi tindakan berdasarkan kuala yang diinginkan.
Pengaturan
Setiap kali tempat Roblox memuatnya, memeriksa apakah layanan Chat kosong. Jika tidak menemukan komponen yang dibutuhkan, tempat akan menyisipkan versi terbaru dari komponen ini. Ini berarti bahwa menulis ulang atau membuat perubahan pada komponen ini dalam pengalaman akan mencegah mereka diperbarui.
Langkah pertama dalam mengatur perpustakaan komandAdmin adalah menambahkan modul chat baru ke layanan chat. Library dalam tutorial ini mengurusi pengangkatan berat yang dilakukan oleh modul chat jadi satu-satunya objek yang perlu Anda tambahkan ke layanan chat adalah ModuleScript baru. Nama modul script Anda dapat apa pun, tetapi saya sarankan sesu
Meng implementasi Perintah Baru
Alih-alih menerapkan sebagian besar dari logika Modul Obrolan Anda akan hanya memerlukan modul perpustakaan yang melakukan sebagian besar pekerjaan dan menambahkan fungsionalitas tambahan. Cara termudah untuk menambahkan perpustakaan ke modul Anda adalah dengan menggunakan asetId-nya di bagian atas skrip Anda.
local AdminCommands = require(1163352238)
Modul ini mengembalikan tabel fungsi, dengan fungsi Run sebagai yang paling penting. Library memiliki fungsi Run untuk modul Chat-nya. Penting bahwa AdminCommands mengembalikan fungsi Run ini ke modul Chat. Fungsi ini diindeks berdasark
return AdminCommands.Run
Di antara dua baris kode ini, implementasi perintah Anda sendiri dan fungsi pembantu yang diperlukan.
Untuk menyambungkan fungsi ke perpustakaan, gunakan fungsi BindCommand dari AdminCommands. Saat menyambungkan fungsi, Anda harus menyeb
AdminCommands:BindCommand({"keyword1", "keyword2"}, commandName, 1, "Optional description")
Untuk melepaskan Anda akan menggunakan UnbindCommand dan spesifikasi kata kunci untuk melepaskan.
AdminCommands:UnbindCommand({"keyword1"})
Secara keseluruhan, konten skrip AdminCommands Anda harus terlihat seperti mengikuti:
local AdminCommands = require(1163352238)
local Utilities = AdminCommands.Utilities
function commandFunction(commandData)
-- Kode perintah di sini
-- Kembalinya benar jika berhasil dan false jika tidak
end
AdminCommands:BindCommand({"keyword1", "keyword2"}, commandFunction, 1, "Optional description")
return AdminCommands.Run
Anda mungkin perhatikan bahwa fungsi contoh mengambil parameter bernama commandData. Para parameter ini adalah argumen tabel yang dilewati ke semua fungsi administrator yang terikat saat dieksekusi oleh library. Tabel ini berisi informasi yang berguna tentang perintah yang dibicarakan dan pengguna yang berbicara. Ini memiliki field berikut:
- Pembicara: ChatSpeaker
- Pesan: string
- ChannelName: string
- Perintah: string
Sangat penting untuk selalu mengharapkan commandData sebagai parameter fungsi komando. Misalnya, jika Anda memiliki komando bernama "explode", yang memerlukan parameter Player untuk dispesifikasi, fungsi akan terlihat seperti explode(komandoData, pengguna).
| Fungsi | Parameter | Kembalikan | | --- | | Return | | --- | | | | BindCommand() | tabel fungsi ID, fungsi funToExecute, tingkat izin minimum, deskripsi string | booleh | | UnbindCommand() | tabel fungsi ID | | booleh | | GetCommands() | tabel fungsi ID |
Keperluan
Perpustakaan sudah memiliki beberapa fungsi pembantu bawaan bernama Utilities yang dapat Anda gunakan. Store AdminCommand.Utilities dalam variabel atau referensi langsung.
local Utilities = AdminCommands.Utilities
Fungsi utilitas saat ini adalah:
| Fungsi | Parameter | Kembalikan | |
Contoh Perintah
Sebuah perintah yang berguna untuk dimiliki akan menjadi salah satu yang mencetak daftar semua perintah yang tersedia pengguna. Perintah ini keluar setiap perintah yang terikat dengan perpustakaan dan beberapa dari sifatnya.
-- Mencetak daftar semua perintah yang terikat
function listCommand(commandData)
Utilities:SendSystemMessage(commandData, "The following commands are available:")
-- Iterate melalui setiap perintah dan cetak keluar
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.")
Perintah yang berguna lainnya memungkinkan pengguna untuk memberi kesinaran pada diri mereka sendiri. Perintah ini mengharuskan satu parameter ketika diucapkan - nama pengguna target. Jika pengguna ada, perintah akan menciptakan objek Sparkles di HumanoidRootPart dari pengguna itu.
-- Memberikan kilauan karakter pemain yang ditentukan
function sparklesCommand(commandData)
-- Kesalahan jika tidak ada parameter yang diberikan/dibicarakan
if #commandData.Parameters == 0 then
return Utilities:NoPlayerSpecified(commandData)
end
-- Loop melalui parameter (jalankan pada setiap nama pemain yang diberikan)
for index = 1, #commandData.Parameters do
local parameter = commandData.Parameters[index]
if (parameter == "me" or parameter == "") then parameter = commandData.Speaker.Name end -- Jika parameter adalah saya maka pengguna harus mengacu pada diri mereka sendiri
-- Gunakan fungsi pembantu untuk menemukan karakter pemain dan menambahkan kilauan
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")
Anda juga dapat mencakup perintah ledakan dari tutorial Klik untuk Menjalankan Perintah Admin. Perintah ini juga mengambil nama pengguna sebagai parameter.
-- Verifikasi bahwa model yang diberikan adalah Karakter dan menambahkan ledakan ke HumanoidRootPart-nya
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
-- Membuat karakter pemain tertentu meledak
function explodeCommand(commandData)
-- Kesalahan jika tidak ada parameter yang diberikan/dibicarakan
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 -- Jika parameter adalah saya maka pengguna harus mengacu pada diri mereka sendiri
-- Gunakan fungsi pembantu untuk menemukan karakter pemain dan menambahkan ledakan
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.")
Library Izin
Jika seorang non-admin mencoba untuk mengucapkan perintah seperti ini, yang memiliki tingkat izin yang lebih tinggi dari 0, itu tidak akan diaktifkan. Sistem perintah menggunakan library izin terpisah, ke cui pembuat pengalaman diberikan level izin matematika. Besar. Admin dapat ditambahkan menggunakan fungsi berikut ini pada objek modul AdminCommands Anda:
SetUserPermission(number requesterUserId, number targetUserId, permissionLevel) -> boolSetGroupRankPermission(number requesterUserId, number targetGroupId, number targetRankId, permissionLevel) -> bool
| Fungsi | Parameter | Kembalikan | | ---------------- |
Modul Cepat Mulai
Untuk pengaturan yang lebih mudah, Anda juga dapat menggunakan ini Cepat Mulai, yang merupakan modul yang telah menerapkan library Admin Commands. Model ini adalah modul dengan format yang sama seperti yang dijelaskan di atas. Selain itu, modul ini memiliki beberapa komando yang sudah termasuk sehingga Anda tidak perlu mengimpor ulang.
| Command/Bind | Spoken Parameter | |