mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-17 17:27:19 +02:00
Dedicated server: park mods as server-owned objects
- maps.park_mods binds a Park Editor park mod (Mods/<folder>/parks/<key>.park.json) to a name and the map it was built on; maps.park_limits caps the parks and objects spawned at once (3 and 512 by default) - park-mod list | add <name> [<name>...] [minutes] | remove <name> [<name>...] | clear, from the console, as /park-mod by admins, and by players through custom votes - A spawned park is the layout of the server's own SteamID and epoch, sent like a player's: games since 1.0.0 already show it, it counts against no player's object limit, nobody can move or delete it, and it stays when players leave - Objects players' games would not take (not Build Kit items, broken values) are skipped and logged; a missing or broken park is an error line when spawning - Optional expiry (1-1440 min) with a warning in chat a minute before; every park goes on a map change and none survive a restart - [parks] log lines name who did it: console, the admin, or "a vote"; a vote's refusal reaches chat - park-mod is reserved for custom commands; README.txt documents the settings, commands and a park/unpark vote Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2G4APEkhHgVs59RDL3XWD
This commit is contained in:
1 parent
f4292d6b73
commit
6909fe3a2e
13 files changed
+517
-6
No files matched your search
@@ -27,6 +27,7 @@ constexpr std::string_view help_text =
|
||||
"announce <text> | announce-to <player> <text> | announcements [list|add <text>|remove <n>|clear|interval <minutes>|off]\n"
|
||||
"map-pool [add|remove <map>|clear] | rotation [<minutes>|off]\n"
|
||||
"park <lot> <layout> | park random | layer-sync on|off | layer <key> default|on|off | tod <time|default>\n"
|
||||
"park-mod list | park-mod add <name> [<name>...] [minutes] | park-mod remove <name> [<name>...] | park-mod clear\n"
|
||||
"activity-log on|off | announce-throwdowns on|off | parties [on|off] | party-size <2-8> | afk-kick <minutes>|off | speed-check off|warn|kick | board-check off|warn|kick\n"
|
||||
"score-check [off|warn|kick] | score-allow [<fingerprint>|remove <fingerprint>]\n"
|
||||
"reserved [slots <n> | add|remove <SteamID64>] | roles [reload] | role <player or SteamID64> <role>|none | update | quit";
|
||||
@@ -669,6 +670,7 @@ std::string Host::command(std::string_view line, std::uint64_t admin) {
|
||||
++object_clears_;
|
||||
return changed("Deleted " + std::to_string(removed) + " placed object" + (removed == 1 ? "." : "s."));
|
||||
}
|
||||
if (name == "park-mod") return park_mod_command(argument, admin);
|
||||
if (name == "park") {
|
||||
if (lower(argument) == "random") {
|
||||
config_.parks = random_park_choices();
|
||||
|
||||
Reference in new issue
Block a user