Fix for players getting softlocked in unassigned state.

nosoop 9d4891383c DRY panel resend 2 years ago
misc 7e5e9a29e9 Initial commit 2 years ago
scripting 9d4891383c DRY panel resend 2 years ago
.gitignore 7e5e9a29e9 Initial commit 2 years ago
README.md fd0bda8a03 Refire team select panels if on cooldown 2 years ago
configure.py 7e5e9a29e9 Initial commit 2 years ago

README.md

jointeam Command Fix

☕ fund my caffeine addiction ☕

Prevents players from getting stuck in an unassigned state without being able to open the team select menu.

The issue (as far as I'm personally aware) is described at ValveSoftware/Source-1-Games#3651.

The fix involves a delayed resending of the team select panel if:

  • the player attempted to join a team while the command was on cooldown, and
  • the server attempts to send one to a player while they are on cooldown

Building

  1. Run python configure.py --spcomp-dir {DIR} within the project root, where {DIR} is a directory containing the SourcePawn compiler (spcomp) and SourceMod's base include files. This will create the build.ninja script.
    • If --spcomp-dir isn't specified, the script will try to detect the compiler based on an existing spcomp executable in your path.
    • It is highly preferred that you use a toolchain that is free of third-party include files; those files should be added to the project directly.
    • Do not add build.ninja to version control; it should always be generated from configure.py.
  2. Run ninja; this will read the build.ninja script and build things as necessary. Files will be generated and copied to build/, creating any intermediate folders if they don't exist. Re-run ninja whenever you make changes; it will also reconfigure the build if configure.py is modified.
    • Any files removed from configure.py will remain in build/; run ninja -t cleandead to remove any lingering files.

A "CSRD Internal" Plugin

This is a plugin mainly intended for use in Pikachu's Canadian Server of Romance and Drama.

While I'm happy if you find some useful code for your own plugins, I can't provide any support for said code, nor will I offer any guarantees that the plugin will remain usable outside of its main use.