Skip to content

Commit a13d7d3

Browse files
committed
fix(src): Fix map command and refactor slay & slap.
1 parent 6561b4d commit a13d7d3

File tree

5 files changed

+38
-65
lines changed

5 files changed

+38
-65
lines changed

plugins/admins_commands/commands.lua

Lines changed: 35 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ commands:Register("slay", function(playerid, args, argsCount, silent, prefix)
1818

1919
local players = FindPlayersByTarget(args[1], false)
2020
if #players == 0 then
21-
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), FetchTranslation("admins.invalid_player")) -- translation
21+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), FetchTranslation("admins.invalid_player"))
2222
end
2323

2424
local admin = nil
@@ -57,7 +57,7 @@ commands:Register("slap", function(playerid, args, argsCount, silent, prefix)
5757

5858
local players = FindPlayersByTarget(args[1], false)
5959
if #players == 0 then
60-
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "No players found.") -- translation
60+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "No players found.")
6161
end
6262

6363
local health = (args[2] or 0)
@@ -76,6 +76,9 @@ commands:Register("slap", function(playerid, args, argsCount, silent, prefix)
7676
vel.z = vel.z + math.random(100, 300)
7777
pl:CBaseEntity().AbsVelocity = vel
7878
pl:CBaseEntity().Health = pl:CBaseEntity().Health - health
79+
if pl:CBaseEntity().Health <= 0 then
80+
pl:Kill()
81+
end
7982

8083
if not pl:CBasePlayerController():IsValid() then return end
8184
ReplyToCommand(playerid, config:Fetch("admins.prefix"),
@@ -106,33 +109,31 @@ commands:Register("rename", function(playerid, args, argsCount, silent, prefix)
106109

107110
local players = FindPlayersByTarget(args[1], false)
108111
if #players == 0 then
109-
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "No players found.") -- translation
112+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "No players found.")
110113
end
111114

112115
local pl = players[1]
113116
local name = args[2]
114117
if not pl:CBasePlayerController():IsValid() then return end
115118
if name == pl:CBasePlayerController().PlayerName then
116-
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "Same name.") -- translation
119+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), "Same name.")
117120
end
118121

119122
local admin = nil
120123
if playerid ~= -1 then
121124
admin = GetPlayer(playerid)
122125
end
123126

124-
125-
local oldname = pl:CBasePlayerController().PlayerName
126127
pl:CBasePlayerController().PlayerName = name
127128
if not admin:CBasePlayerController():IsValid() then return end
128129
ReplyToCommand(playerid, config:Fetch("admins.prefix"),
129130
FetchTranslation("admins.rename.message"):gsub("{ADMIN_NAME}", admin:CBasePlayerController().PlayerName):gsub(
130-
"{PLAYER_NAME}", pl:CBasePlayerController().PlayerName)) -- translation
131+
"{PLAYER_NAME}", pl:CBasePlayerController().PlayerName))
131132
end)
132133

133134
commands:Register("csay", function(playerid, args, argsCount, silent, prefix)
134135
if playerid == -1 then
135-
if argc < 1 then
136+
if argsCount < 1 then
136137
return print(string.format(FetchTranslation("admins.csay.syntax"), config:Fetch("admins.prefix"),
137138
"sw_"))
138139
end
@@ -188,31 +189,38 @@ commands:Register("rcon", function(playerid, args, argsCount, silent, prefix)
188189
server:Execute(cmd)
189190
end)
190191

191-
local ChangeMap = function(playerid, args, argsCount, silent)
192-
if playerid == -1 then
193-
if argc < 1 then
194-
return print(string.format(FetchTranslation("admins.changemap.syntax"),
195-
config:Fetch("admins.prefix"), "sw_"))
196-
end
197-
local map = args[1]
198-
if server:IsMapValid(map) == 0 then
199-
return print(string.format(FetchTranslation("admins.invalid_map"),
200-
config:Fetch("admins.prefix"), map))
192+
local ChangeMap = function(playerid, args, argsCount, silent, prefix)
193+
if playerid ~= -1 then
194+
local player = GetPlayer(playerid)
195+
if not player then return end
196+
197+
local hasAccess = exports["admins"]:HasFlags(playerid, "g")
198+
199+
if not hasAccess then
200+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), FetchTranslation("admins.no_permission"))
201201
end
202-
playermanager:SendMsg(MessageType.Chat,
203-
string.format(FetchTranslation("admins.changing_map"), config:Fetch("admins.prefix"), map))
202+
end
203+
204+
if argsCount < 1 then
205+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), string.format(FetchTranslation("admins.changemap.syntax"), prefix))
206+
end
204207

205-
SetTimeout(3000, function()
206-
server:ChangeMap(map)
207-
end)
208+
local map = args[1]
209+
210+
if not server:IsMapValid(map) then
211+
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), FetchTranslation("admins.invalid_map"):gsub("{MAP}", map))
208212
end
213+
214+
playermanager:SendMsg(MessageType.Chat, string.format("%s %s", config:Fetch("admins.prefix"), FetchTranslation("admins.changing_map"):gsub("{MAP}", map)))
215+
SetTimeout(3000, function()
216+
server:ChangeMap(map, tostring(tonumber(map)) == map)
217+
end)
209218
end
210219
commands:Register("map", ChangeMap)
211220
commands:Register("changemap", ChangeMap)
212221

213222

214223
local AddSlapMenuSelectedPlayer = {}
215-
local AddSlapMenuSelectedHealth = {}
216224

217225
commands:Register("addslapmenu", function(playerid, args, argc, silent, prefix)
218226
if playerid == -1 then return end
@@ -225,7 +233,6 @@ commands:Register("addslapmenu", function(playerid, args, argc, silent, prefix)
225233
end
226234

227235
AddSlapMenuSelectedPlayer[playerid] = nil
228-
AddSlapMenuSelectedHealth[playerid] = nil
229236

230237
local players = {}
231238

@@ -295,7 +302,6 @@ commands:Register("addslapmenu_selecthealth", function (playerid, args, argc, si
295302
if not AddSlapMenuSelectedPlayer[playerid] then return player:HideMenu() end
296303

297304
local health = args[1]
298-
AddSlapMenuSelectedHealth[playerid] = health
299305

300306
local pid = AddSlapMenuSelectedPlayer[playerid]
301307
local pl = GetPlayer(pid)
@@ -305,26 +311,9 @@ commands:Register("addslapmenu_selecthealth", function (playerid, args, argc, si
305311
return
306312
end
307313

308-
if not pl:CBaseEntity():IsValid() then return end
309-
local vel = pl:CBaseEntity().AbsVelocity
310-
vel.x = vel.x + math.random(50, 230) * (math.random(0, 1) == 1 and -1 or 1)
311-
vel.y = vel.y + math.random(50, 230) * (math.random(0, 1) == 1 and -1 or 1)
312-
vel.z = vel.z + math.random(100, 300)
313-
314-
pl:CBaseEntity().AbsVelocity = vel
315-
pl:CBaseEntity().Health = pl:CBaseEntity().Health - AddSlapMenuSelectedHealth[playerid]
316-
317-
if not player:CBasePlayerController():IsValid() then return end
318-
if not pl:CBasePlayerController():IsValid() then return end
319-
ReplyToCommand(playerid, config:Fetch("admins.prefix"),
320-
FetchTranslation("admins.slap.message"):gsub("{ADMIN_NAME}",
321-
player and player:CBasePlayerController().PlayerName):gsub("{PLAYER_NAME}",
322-
pl:CBasePlayerController().PlayerName):gsub("{HEALTH}", tostring(health)))
323-
314+
player:ExecuteCommand("sw_slap #"..pid.." "..health)
324315
end)
325316

326-
local AddSlayMenuSelectedPlayer = {}
327-
328317
commands:Register("addslaymenu", function(playerid, args, argc, silent, prefix)
329318
if playerid == -1 then return end
330319
local player = GetPlayer(playerid)
@@ -335,8 +324,6 @@ commands:Register("addslaymenu", function(playerid, args, argc, silent, prefix)
335324
FetchTranslation("admins.no_permission"))
336325
end
337326

338-
AddSlayMenuSelectedPlayer[playerid] = nil
339-
340327
local players = {}
341328

342329
for i = 0, playermanager:GetPlayerCap() - 1, 1 do
@@ -354,7 +341,7 @@ commands:Register("addslaymenu", function(playerid, args, argc, silent, prefix)
354341
table.insert(players, { FetchTranslation("admins.no_players"), "" })
355342
end
356343

357-
menus:RegisterTemporary("addslaymenuadmintempplayer_" .. playerid, FetchTranslation("admins.add.slay"), config:Fetch("admins.amenucolor"), players)
344+
menus:RegisterTemporary("addslaymenuadmintempplayer_" .. playerid, FetchTranslation("admins.adminmenu.slay"), config:Fetch("admins.amenucolor"), players)
358345

359346
player:HideMenu()
360347
player:ShowMenu("addslaymenuadmintempplayer_" .. playerid)
@@ -378,19 +365,5 @@ commands:Register("addslaymenu_selectplayer", function(playerid, args, argc, sil
378365
local pl = GetPlayer(pid)
379366
if not pl then return end
380367

381-
AddSlayMenuSelectedPlayer[playerid] = pid
382-
383-
if not pl:CBaseEntity():IsValid() then return end
384-
if not pl:CBasePlayerController():IsValid() then return end
385-
if pl:CBaseEntity().Health <= 0 then
386-
return ReplyToCommand(playerid, config:Fetch("admins.prefix"), FetchTranslation("admins.slay.already_dead"):gsub("{PLAYER_NAME}", pl:CBasePlayerController().PlayerName))
387-
end
388-
389-
pl:Kill()
390-
if not player:CBasePlayerController():IsValid() then return end
391-
ReplyToCommand(playerid, config:Fetch("admins.prefix"),
392-
FetchTranslation("admins.slay.message"):gsub("{ADMIN_NAME}",
393-
player and player:CBasePlayerController().PlayerName):gsub("{PLAYER_NAME}",
394-
pl:CBasePlayerController().PlayerName))
395-
368+
player:ExecuteCommand("sw_slay #"..pid)
396369
end)

plugins/admins_commands/core.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ function GetPluginAuthor()
33
end
44

55
function GetPluginVersion()
6-
return "v1.0.1"
6+
return "v1.0.2"
77
end
88

99
function GetPluginName()

plugins/admins_commands/events.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
AddEventHandler("OnPluginStart", function (event)
2-
GenerateMenu()
2+
GenerateMenu()
33
end)
44

55
AddEventHandler("OnAllPluginsLoaded", function(event)

plugins/admins_commands/functions.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
function GetAllAdminsOnline()
22
local admins = {}
3-
3+
44
for i=1,playermanager:GetPlayerCap() do
55
if exports["admins"]:HasFlags(i-1,"b") then
66
table.insert(admins, i-1)

plugins/admins_commands/utils.lua

Whitespace-only changes.

0 commit comments

Comments
 (0)