Files
wnsrc/gamemodes/darkrp/plugins/groupmanager/sh_commands.lua
lifestorm 6a58f406b1 Upload
2024-08-04 23:54:45 +03:00

205 lines
5.1 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
ix.command.Add("GroupInvite", {
description = "Invite a player you are looking at to join your group.",
arguments = ix.type.text,
OnRun = function(self, client, message)
local character = client:GetCharacter()
local group = character:GetGroup()
if (group) then
local role = group:GetRoleID(character:GetID())
if (role == GROUP_LEAD or role == GROUP_MOD) then
local data = {}
data.start = client:GetShootPos()
data.endpos = data.start + client:GetAimVector() * 96
data.filter = client
local target = util.TraceLine(data).Entity
if (IsValid(target) and target:IsPlayer()) then
local targetGroup = target:GetCharacter():GetGroup()
if (targetGroup) then
client:Notify(target:GetName().." zaten "..(targetGroup:GetID() != group:GetID() and "başka" or "sizin").." gruba ait.")
target:Notify(client:GetName().." sizi şu gruba davet etmeye çalıştı: '"..group:GetName().."'.")
return
end
if (target:IsBot()) then
group:AddMember(target:GetCharacter())
group:Sync()
for k, v in pairs(group:GetOnlineMembers()) do
v:Notify(target:GetName().." gruba katıldı "..group:GetName()..".")
end
else
netstream.Start(target, "ixGroupInvite", group:GetID(), client)
end
client:Notify(target:GetName().." grubunuza davet edildi.")
else
client:NotifyLocalized("plyNotValid")
end
else
client:Notify("Gruba birini davet etme izniniz yok.")
end
else
client:Notify("Herhangi bir gruba ait değilsiniz.")
end
end
})
ix.command.Add("SetGroupName", {
description = "Rename existing group name.",
privilege = "Manage Groups",
arguments = {
ix.type.string,
ix.type.text
},
OnRun = function(self, client, name, nameTo)
local group = PLUGIN:FindGroup(name)
if (group) then
for k, v in pairs(PLUGIN.stored) do
if (string.utf8lower(v.name) == string.utf8lower(nameTo) and v:GetID() != group:GetID()) then
client:Notify("Bu isme sahip grup zaten var.")
return
end
end
local oldName = group:GetName()
group.name = nameTo
group:Sync()
group:NotifyAll(client:GetName().." grubu "..oldName.." adından "..nameTo.." adına değiştirdi.")
end
end
})
ix.command.Add("DeleteGroup", {
description = "Delete existing group.",
privilege = "Manage Groups",
arguments = {
ix.type.text
},
OnRun = function(self, client, name)
local group = PLUGIN:FindGroup(name)
if (group) then
local activeGroup = group.active
if !activeGroup then
client:NotifyLocalized("Etkin olmayan bir grubu kaldıramazsınız.")
return
end
group:NotifyAll(client:GetName().." grubunuzu sildi.")
for k, v in pairs(group:GetMemberCharacters()) do
group:KickMember(v)
end
PLUGIN:DeleteGroup(group.id)
client:NotifyLocalized("Grup: "..group:GetName().." başarıyla silindi.")
else
client:NotifyLocalized("Bu grup yok.")
end
end
})
ix.command.Add("SetGroupLead", {
description = "Set new group lead.",
privilege = "Manage Groups",
arguments = {
ix.type.string,
ix.type.character
},
OnRun = function(self, client, name, target)
local group = PLUGIN:FindGroup(name)
if (group) then
local members = group:GetMemberCharacters()
for k, v in pairs(members) do
if (group:GetRoleID(v) == GROUP_LEAD) then
group:SetRole(v, GROUP_MOD)
break
end
end
local targetID = target:GetID()
if (members[targetID]) then
group:SetRole(targetID, GROUP_LEAD)
else
group:AddMember(target, GROUP_LEAD)
end
group:NotifyAll(client:GetName().." grup liderliğini aktardı: "..target:GetName()..".")
end
end
})
ix.command.Add("AdminJoinGroup", {
description = "Force any character to join certain group.",
privilege = "Manage Groups",
arguments = {
ix.type.character,
ix.type.string
},
OnRun = function(self, client, target, name)
local group = PLUGIN:FindGroup(name)
if (group) then
local targetID = target:GetID()
local prevGroup = target:GetGroup()
if (prevGroup) then
if (group:GetID() == prevGroup:GetID()) then
client:Notify(target:GetName().." zaten bu gruba ait.")
return
end
prevGroup:KickMember(targetID)
end
group:AddMember(target)
group:NotifyAll(client:GetName()..", "..target:GetName().." adlı kişiyi gruba ekledi.")
else
client:NotifyLocalized("Bu grup yok.")
end
end
})
ix.command.Add("AdminKickGroup", {
description = "Kick any character from the group they're in.",
privilege = "Manage Groups",
arguments = {
ix.type.character
},
OnRun = function(self, client, target, name)
local targetID = target:GetID()
local group = target:GetGroup()
if (group) then
group:KickMember(targetID)
group:NotifyAll(client:GetName()..", "..target:GetName().." adlı kişiyi gruptan attı.")
else
client:NotifyLocalized("Bu karakter herhangi bir gruba ait değil.")
end
end
})