Plugin used to manage tournament-level matches. Upon joining or cycling, all players on the match's registered teams will be forced onto their respective teams. Events also manages cycling & starting matches as well as readying teams. Maps played in a match can be customised using a format file. Customisable vetos are also supported.
- For an offline tournament, make sure
api.enabled
is set tofalse
inconfig.yml
. - Put each team that is playing in its own yml file in
plugins/Events/teams
. - Put each format in its own file in
plugins/Events/format
.
name: A
players:
- 30401f63-f5bb-4f24-9a5a-0ecd5f706115
- 2318a6ef-937d-41ad-aac0-59070815de92
- 77d845ce-c88a-467d-9880-1db671a18933
- 9b4fbb38-ed55-44ad-b510-9f0197433f93
- 02407912-8bbf-4b7b-a34c-a45339841436
- To compile run:
mvn clean install
- Pull requests are welcome.
- Ensure that
plugins/Events/teams/
contains all the teams playing in this tournament andplugins/Events/formats/
contains the formats for this tournament. - Register each team playing with
/tm register <team>
- Start the format with
/tm create <format>
where<format>.xml
is a valid file inplugins/Events/formats
events.staff
- allows users to run/tm
events.spectate
- allows users to watch the matchevents.spectate.vanish
- allows users to watch the match, but they will be vanished and therefore cannot interact with the game
- Extend the
TournamentTeam
andTournamentPlayer
interfaces - Edit
TournamentTeam#create
so that it instantiates your implementation. Do the same withTournamentPlayer
. - Modify
RankedManager
andAPIManager
to include your new endpoints.
Tag | Definition | Attributes | Expects child |
---|---|---|---|
<format> |
Represents a map format. Should be the root element in your format.xml file. It is also a round and therefore can be used to create a nested best of 3. | best-of="3" - what this match should be out of |
Round(s) |
<match> |
Represents a single match. | id - defaults to map name |
The name of the map to be played on this round |
<result-from /> |
Uses the result from a round with a matching id - useful to stop repeating veto deciders | id="map-name" |
N/A |
<veto> |
Represents a veto round | id="veto" |
Required: <decider> , <options> , <order> |
<decider> |
Which team vetoes first | N/A | A round |
<options> |
What vetos should there be | name on the child element - what name should be displayed in the veto |
Round(s) |
<order> |
The veto order (ban, pick, etc.). The last element is enacted by the system (not by a team and so should not have the who attribute). | ban-until="3" (ban until 3 maps are left), starting-team="2" (the team who lost the decider starts), time="30" - the time in seconds that each team has to veto |
If no attributes are present, <pick /> and <ban /> |
<pick /> |
A pick in the veto | team="0" - the team that gets to pick a map (zero is random map picked), insert="back" - whether the map should be added to the front or back of the maps to be played |
N/A |
<ban /> |
A ban in the veto | team="0" - the team that gets to ban a map (zero is random map banned), insert="back" - whether the map should be added to the front or back of the maps to be played |
N/A |
<format best-of="3">
<match>Facility TE</match>
<match>Ascendance</match>
<match>Limbo II</match>
</format>
<format best-of="3">
<veto>
<decider>
<match id="veto-decider">No Return</match>
</decider>
<options>
<match>Ascendance 02</match>
<match>Facility TE</match>
<match>Nartica</match>
<match>Desert Sanctuary</match>
<match>Smoke</match>
</options>
<order ban-until="3" starting-team="2" />
</veto>
</format>
<format best-of="1">
<veto>
<decider>
<match id="veto-decider">No Return</match>
</decider>
<options>
<format name="CTW" best-of="3">
<veto>
<decider>
<result-from id="veto-decider" />
</decider>
<options>
<match>Race for Victory 2</match>
<match>Fairy Tales 2: A Tale or Two</match>
<match>Golden Drought III</match>
<match>Deepwind Jungle TE</match>
<match>NextGen TE</match>
</options>
<order ban-until="1" starting-team="2" />
</veto>
</format>
<format name="DTM" best-of="3">
<veto>
<decider>
<result-from id="veto-decider" />
</decider>
<options>
<match>Warlock</match>
<match>Spaceship Battles TE</match>
<match>The Fenland</match>
<match>Ender Blast</match>
<match>BoomBox</match>
</options>
<order ban-until="1" starting-team="2" />
</veto>
</format>
<format name="Conquest" best-of="3">
<veto>
<decider>
<result-from id="veto-decider" />
</decider>
<options>
<match>Limbo II</match>
<match>Facility TE</match>
<match>Dwyer Hill</match>
<match>Nartica</match>
<match>Desert Sanctuary</match>
</options>
<order ban-until="3" starting-team="2" />
</veto>
</format>
</options>
<order ban-until="1" starting-team="2" />
</veto>
</format>
AGPL-3.0