From 89d9dfbd937d50442b1f5f4300240102c3e81e01 Mon Sep 17 00:00:00 2001
From: --global <lamhung12700@gmail.com>
Date: Thu, 16 Nov 2023 15:39:15 +0700
Subject: [PATCH] Serverside: Fix Beatrun replays

---
 .../gamemodes/beatrun/gamemode/sh/Replay.lua  | 26 ++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Replay.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Replay.lua
index b4ba4a5..f582be8 100644
--- a/beatrun/gamemodes/beatrun/gamemode/sh/Replay.lua
+++ b/beatrun/gamemodes/beatrun/gamemode/sh/Replay.lua
@@ -36,7 +36,7 @@ end
 hook.Add("StartCommand", "ReplayStart", ReplayCmd)
 
 function ReplayStart(ply)
-	if not game.SinglePlayer() then return end
+	--if not game.SinglePlayer() then return end
 	if ply.InReplay then return end
 
 	print("Starting Replay")
@@ -49,7 +49,7 @@ function ReplayStart(ply)
 end
 
 function ReplayStop(ply, debugdump)
-	if not game.SinglePlayer() then return end
+	--if not game.SinglePlayer() then return end
 	if not ply.ReplayTicks then return end
 	if ply.InReplay then return end
 
@@ -140,7 +140,7 @@ function ReplayPlayback(ply, cmd)
 end
 
 function ReplaySendToClient(ply)
-	if not game.SinglePlayer() then return end
+	--if not game.SinglePlayer() then return end
 
 	local replaydata = util.JSONToTable(util.Decompress(file.Read("beatrun/replays/" .. game.GetMap() .. "/replaydump.txt", "DATA")))
 
@@ -159,6 +159,26 @@ function ReplaySendToClient(ply)
 	hook.Add("StartCommand", "ReplayPlay", ReplayPlayback)
 end
 
+if SERVER then
+	--hook.Add("Tick", "TickReplayRecord", function()
+	--	for _, v in ipairs(player.GetAll()) do
+	--		print(v:UserID())
+	--		if Player(v:UserID()).ReplayRecording then
+	--			print("attempting to record tick")
+	--			ReplayCmd(Player(v:UserID()), Player(v:UserID()):GetCurrentCommand())
+	--			--PrintTable(v.ReplayTicks)
+	--		end -- how not to record replays 101
+	--	end
+	--end)
+	function GM:SetupMove(ply, mv, cmd)
+		if ply.ReplayRecording then
+			print("attempting to record tick")
+			ReplayCmd(ply, cmd)
+			--PrintTable(v.ReplayTicks)
+		end -- how not to record replays 101
+	end
+end
+
 if CLIENT then
 	local tab = {
 		["$pp_colour_contrast"] = 0.9,