Bir admin komutu bir kullanıcının belirli bir kontrol seviyesine sahip olduğu bir anahtar kelime veya ifadeyi sohbet penceresine yazabilirsiniz, böylece bir aksiyonbaşlatabilirsiniz. Bu kütüphane sohbet modüllerini kullanır, bu da geleneksel sohbet sisteminin üzerindeki yönetici komutlarını kolayca uygulayabilirsiniz. Chat modülleri, sunucudaki
Yükleme
Herhangi bir Roblox yerini yüklediğinde, sohbet hizmetinin boş olduğunu kontrol eder. Eğer ihtiyaç duyduğu bileşenleri bulmazsa, yer en son versiyonunu yerleştirir. Bu, bir deneyimde bu bileşenleri yazdırmak veya değiştirmek gibi değiştirmek gibi değiştirmek gibi değiştirmek gibi değiştirmek gibi değiştirmek gibi değiştirmek gibi
Yönetici komutları kütüphanesini kurmak için ilk adım, Chat hizmetine yeni bir sohbet modülü eklemektir. Bu kütüphane, bu öğretimdeki gibi ağır kaldırma işlemini yapan bir Chat Modülü'ne bakar, bu yüzden Chat hizmetine eklemelmeniz gereken tek şey yeni bir ModuleScript . Adını
Yeni Komutların Uygulanması
Chat Modülü'nün çoğu işlevselliğini uygulamak yerine, sadece işlevselliğin bir kısmını ekler ve ekstra işlevler ekler. Modülü modülü'nüz modülü eklemek için en üst kısımda varsayılan modül modülü gerektirir.
local AdminCommands = require(1163352238)
Bu Modül bir tablo içinde işlevlerin, en önemli olanın Run işlevi olarak geri döndüğünü gösterir. Kütüphane'nin Chat modülü için bir Run işlevi vardır. AdminCommands'ın bu işlevi AdminCommands'ın
return AdminCommands.Run
Bu iki satır kod arasında, kendi komutlarınızı ve gereken herhangi bir yardımcı işlevleri uygulayın.
Bir işlevi kütüphaneye bağlamak için, BindCommand kütüphanenin işlevini özelleştirin. Bir komutu konuştığında
AdminCommands:BindCommand({"keyword1", "keyword2"}, commandName, 1, "Optional description")
Seni bağlantıdan çıkarmak için aynı şekilde UnbindCommand kullan ve bağlantıyı bağlamak için bir anahtar kelime belirt.
AdminCommands:UnbindCommand({"keyword1"})
Genel olarak, AdminCommands'ınızın içeriği takip edilengibi görünmelidir:
local AdminCommands = require(1163352238)
local Utilities = AdminCommands.Utilities
function commandFunction(commandData)
-- Komut kodu burada
-- Başarılı olduğunda geri döndüğünü ve başarısız olduğunda geri döndüğünü ifade eder
end
AdminCommands:BindCommand({"keyword1", "keyword2"}, commandFunction, 1, "Optional description")
return AdminCommands.Run
Örnek işlevin commandData adında bir parametre aldığını fark edebilirsiniz. Bu parametre, kütüphane tarafından yürütüldüğünde tüm bağlı yönetici komut işlevlerine aktarılan bir tablodur. Tabloda, konuşulan komut ve kullanıcının konuştuğu komut hakkında yararlı bilgiler bulunur. Aşağıdaki alanlar vardır:
- H konuşmacısı: ChatSpeaker
- Mesaj: string
- ChannelName: string
- Komut: string
Komut işlevlerinin bir parçası olarak commandData beklemek önemlidir. Örneğin, "explode" adındaki bir komut varsa, Player parçasının belirtilmesi gerektiren bir komut gibi görünecektir.
| Fonksiyon | Parametreler | Dönüş | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Faydalılar
Kütüphane zaten birkaç kullanışlı yardımcı işlevi olan Utilities adındaki birkaç yerleşik yardımcı işlevi var. Store AdminCommand.Utilities'ı bir değişken veya referans olarak doğrudan depola.
local Utilities = AdminCommands.Utilities
Mevcut üilityet işlevleri:
| Fonksiyon | Paraçlar | Geri dönüş | | ---------------- |
Örnek Komutlar
Kullanılabilir olabilecek bir komut, kullanıcıların mevcut olduğu tüm seçenekli komutların bir listesini yazan olurdu. Bu komut, kütüphaneye bağlı olan her komutu ve birkaç özelliğini yazacaktır.
-- Tüm bağlı komutların bir listesini yazdırır
function listCommand(commandData)
Utilities:SendSystemMessage(commandData, "The following commands are available:")
-- Her komutu itere ve sonuçlarını yazdır
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.")
Kullanıcıların kendilerine parıltı vermesine izin veren başka bir yararlı komut. Bu komut, konuşulduğunda bir parametre gerektirir - hedef kullanıcının ismi. Eğer kullanıcı mevcutsa, komut oluveren bir Sparkles nesnesi oluşturur.
-- Belirli bir oyuncunun karakterinin parıltılarını verir
function sparklesCommand(commandData)
-- Parametre verilmediğinde/konuşulmadığında hata
if #commandData.Parameters == 0 then
return Utilities:NoPlayerSpecified(commandData)
end
-- Parametrelerden geçer (her verilen oyuncunun isminde çalıştır)
for index = 1, #commandData.Parameters do
local parameter = commandData.Parameters[index]
if (parameter == "me" or parameter == "") then parameter = commandData.Speaker.Name end -- Eğer parametre benimseyseniz, kullanıcı kendini işaret ediyor
-- oyuncukarakterini bulmak ve parıltıları eklemek için bir yardımcı işlevi kullanın
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")
Ayrıca Admin Komutu Oluşturma eğitiminden bir patlama komutu da ekleyebilirsiniz. Bu komut ayrıca bir kullanıcının ismini bir parametre olarak alır.
-- Verilen modelin bir Karakter olduğunu doğrular ve onun HumanoidRootPart'ına bir patlama ekler
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
-- Belirli bir oyuncunun karakterini patlatır
function explodeCommand(commandData)
-- Parametre verilmediğinde/konuşulmadığında hata
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 -- Eğer parametre benimseyseniz, kullanıcı kendini işaret ediyor
-- oyuncukarakterini bulmak ve patlamayı eklemek için bir yardımcı işlevi kullanın
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.")
İzin Veritabanı
Bir non-admin, 0'dan daha yüksek bir yetki seviyesine sahip bir komut gibi konuşmaya çalışırsa, bu işlem tetiklenmez. Komut sistemi, deneyin yapımcısına ayrı bir İzin kütüphanesi kullanır, hak seviyesi matematiksel olarak büyüktür. Adminler, AdminCommands modülünün aşağıdaki işlevleri kullanılarak eklenebilir:
SetUserPermission(number requesterUserId, number targetUserId, permissionLevel) -> boolSetGroupRankPermission(number requesterUserId, number targetGroupId, number targetRankId, permissionLevel) -> bool
| Fonksiyon | Parametreler | Dönüş | |
Hızlı Başlangıç Modülü
Daha kolay kurulması için ayrıca bu Hızlı Başlangıç kullanabilirsiniz, bu da Admin Komutları kütüphanesini zaten uyguladığı modüldür. Model aşağıda açıklanan gibi bir modüldür. Ayrıca, modülün birkaç komutu zaten içerilmiştir, böylece yeniden uygulamak zorunda kalmazsınız.
| Komut/Bağlantı | Konuş