From 1755505463c724b7ee71306505f4ebaa8e34795b Mon Sep 17 00:00:00 2001 From: a-bad-dev <244852891+a-bad-dev@users.noreply.github.com> Date: Mon, 5 Jan 2026 00:56:21 -0400 Subject: [PATCH] Revert the broken and unwanted feature 'quick and hacky way to automatically start matches' --- mods/game/functions/init.lua | 74 +++++++++++++++--------------- mods/game/main/init.lua | 19 -------- mods/game/maps/maps/forest/map.lua | 2 +- 3 files changed, 37 insertions(+), 58 deletions(-) diff --git a/mods/game/functions/init.lua b/mods/game/functions/init.lua index 52de452..0c5113a 100644 --- a/mods/game/functions/init.lua +++ b/mods/game/functions/init.lua @@ -119,50 +119,48 @@ function start_match(map) -- Start the match map_data = place_map(map or "forest") -- default to forest if no map is specified - core.after(3, function() -- add a few seconds to allow the map to be placed fully - assert(loadstring(map_data.scripts.on_start or ""))() - - core.chat_send_all(core.colorize("green", string.format("Match about to start in %d seconds!\nOpen inventory to change class!", map_data.start_time))) + assert(loadstring(map_data.scripts.on_start or ""))() + + core.chat_send_all(core.colorize("green", string.format("Match about to start in %d seconds!\nOpen inventory to change class!", map_data.start_time))) + + for _, player in pairs(core.get_connected_players()) do + set_player_mode(player, "pre_match") + give_player_items(player) + + player:set_pos({x = map_data.spawn_x, y = map_data.spawn_y, z = map_data.spawn_z}) + + player:set_hp(20) + end + + for i = 10, 1, -1 do -- count down from 10 to 1 (yes you are free to set me on fire for this horrible solution) + core.after(map_data.start_time - 10 + i, function() + core.chat_send_all(core.colorize("green", string.format("Match starts in %d second%s.", 11 - i, 11 - i == 1 and "" or "s"))) -- <- RIP readability + end) + end + + core.after(map_data.start_time, function() + set_match_state("in_progress") + core.chat_send_all(core.colorize("green", "Match started!")) + + remove_barrier(map_data.size_x, map_data.barrier_level, map_data.size_z) + + alive_players = {} for _, player in pairs(core.get_connected_players()) do - set_player_mode(player, "pre_match") + local player_name = player:get_player_name() + inv = player:get_inventory() + + inv:set_list("main", {}) + give_player_items(player) - player:set_pos({x = map_data.spawn_x, y = map_data.spawn_y, z = map_data.spawn_z}) + player:set_properties({ + pointable = true, -- allow players to be killable after the match starts + }) + alive_players[player_name] = "alive" - player:set_hp(20) + set_player_mode(player, "normal") end - - for i = 10, 1, -1 do -- count down from 10 to 1 (yes you are free to set me on fire for this horrible solution) - core.after(map_data.start_time - 10 + i, function() - core.chat_send_all(core.colorize("green", string.format("Match starts in %d second%s.", 11 - i, 11 - i == 1 and "" or "s"))) -- <- RIP readability - end) - end - - core.after(map_data.start_time, function() - set_match_state("in_progress") - core.chat_send_all(core.colorize("green", "Match started!")) - - remove_barrier(map_data.size_x, map_data.barrier_level, map_data.size_z) - - alive_players = {} - - for _, player in pairs(core.get_connected_players()) do - local player_name = player:get_player_name() - inv = player:get_inventory() - - inv:set_list("main", {}) - - give_player_items(player) - - player:set_properties({ - pointable = true, -- allow players to be killable after the match starts - }) - alive_players[player_name] = "alive" - - set_player_mode(player, "normal") - end - end) end) end diff --git a/mods/game/main/init.lua b/mods/game/main/init.lua index 4420ddd..5ef686e 100644 --- a/mods/game/main/init.lua +++ b/mods/game/main/init.lua @@ -1,7 +1,6 @@ -- Main mod for SSG -- Variables -automatic_start = {true, false} alive_players = {} map_data = {} spawn_pos = vector.new(-100, -9.6, -100) @@ -33,24 +32,6 @@ core.register_on_mods_loaded(function() end end) -core.register_globalstep(function() -- automatically start a match every 30s - if (not automatic_start[1]) or automatic_start[2] then - return - end - - local players = 0 - for _, _ in ipairs(core.get_connected_players()) do - players = players + 1 - end - if players > 1 and match_state == "not_started" then - core.chat_send_all(core.colorize("lime", "-!- Automatically starting new match in 30 seconds")) - automatic_start[2] = true - core.after(30, function() - start_match("forest") - end) - end -end) - core.register_on_joinplayer(function(player) core.place_schematic({x=-105, y=-10, z=-108}, core.get_modpath("main") .. "/schems/spawn.mts", 0, nil, true) player:set_pos(spawn_pos) diff --git a/mods/game/maps/maps/forest/map.lua b/mods/game/maps/maps/forest/map.lua index 8ff6cf2..66cff30 100644 --- a/mods/game/maps/maps/forest/map.lua +++ b/mods/game/maps/maps/forest/map.lua @@ -15,7 +15,7 @@ local map_data = { scripts = { -- "temporary" hack to ensure there's nothing on top of the map on_start = "for x=0, 154 do\nfor y=0, 16 do\nfor z=0, 146 do\ncore.set_node({x=x,y=53+y,z=z}, {name=\"air\"})\nend\nend\nend", on_barrier_remove = "", - on_end = "automatic_start[2] = false" + on_end = "" } }