diff --git a/README.md b/README.md index cbd0518..23d7cb7 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ -# MobArena -[![Build Status](https://travis-ci.org/garbagemule/MobArena.svg?branch=master)](https://travis-ci.org/garbagemule/MobArena) +MobArena [![Build Status](https://travis-ci.org/garbagemule/MobArena.svg?branch=master)](https://travis-ci.org/garbagemule/MobArena) [![Documentation Status](https://readthedocs.org/projects/mobarena/badge/?version=latest)](http://mobarena.readthedocs.io/en/latest/?badge=latest) +======== + +MobArena is an arena-style minigame for Spigot-based Minecraft servers -MobArena is an arena-style minigame for Bukkit-based Minecraft servers. ## Getting Started + If you don't want to compile the plugin yourself, grab a release artifact from one of these two sites: @@ -13,7 +15,9 @@ one of these two sites: The wiki here on Github should have all the information you need to get started using the plugin. + ## Getting Help + If you run into problems or need help with something, feel free to hop on IRC (#mobarena @ irc.esper.net) to have a chat. If you don't know what IRC is or don't have an IRC client, you can use a web-based one: @@ -24,7 +28,9 @@ Remember, though, that IRC is _idle chat_, which means you likely won't get a response immediately. It could take anything from a couple of seconds to a day, but your message _will_ be seen. + ## Bugs and Suggestions + Found a bug or have a great idea for the plugin? Use the issue tracker here on Github to submit a bug report or feature request. Please have a look through the existing issues before you post a new one to avoid duplicates. diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..41f8712 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = MobArena +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..c113c17 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# MobArena documentation build configuration file, created by +# sphinx-quickstart on Wed Nov 29 13:24:13 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +import os +import sys +sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.todo'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'MobArena' +copyright = '2017, garbagemule, Justin W. Flory (jflory7), MobArena contributors' +author = 'garbagemule, Justin W. Flory (jflory7), MobArena contributors' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.99' +# The full version, including alpha/beta/rc tags. +release = '0.99.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MobArenadoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'MobArena.tex', 'MobArena Documentation', + 'garbagemule, Justin W. Flory (jflory7), MobArena contributors', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'mobarena', 'MobArena Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'MobArena', 'MobArena Documentation', + author, 'MobArena', 'One line description of project.', + 'Miscellaneous'), +] + + + diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..88b3bad --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,32 @@ +.. MobArena documentation master file, created by + sphinx-quickstart on Wed Nov 29 13:24:13 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MobArena's documentation! +==================================== + +.. toctree:: + :maxdepth: 1 + :name: dev + :caption: Developer resources + :glob: + + dev/* + +.. toctree:: + :maxdepth: 1 + :name: user + :caption: User documentation + :glob: + + user/* + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..19274c6 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,36 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build +set SPHINXPROJ=MobArena + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..d415c73 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +## Theme for Sphinx documentation +Sphinx +sphinx_rtd_theme diff --git a/docs/test-docs.sh b/docs/test-docs.sh new file mode 100755 index 0000000..26f1ac1 --- /dev/null +++ b/docs/test-docs.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh +# +# Script to automatically build and test the Sphinx documentation currently in +# the repo. This script should always be run before submitting a new pull +# request. +# +# If you're on Windows, please use the `make.bat` script in `docs/` directory. +# + +make clean html + diff --git a/docs/user/announcements.rst b/docs/user/announcements.rst new file mode 100644 index 0000000..66b29b8 --- /dev/null +++ b/docs/user/announcements.rst @@ -0,0 +1,23 @@ +#################### +Announcement strings +#################### + +The ``announcements.yml`` file is where all of MobArena's announcements +and messages are stored. You can freely edit this file however you see +fit, and color codes are supported. **To add color to a message**, use +the ``&``-character followed by a valid color code. You can find a list +of valid codes `right +here `__, +and you can find examples in the default file. + +Note that some of the announcements take a variable, represented in the +message by a ``%``-character. You can leave this character out if you +don't want the variable in the message. It is not possible to add +variables to announcements that don't take them by default, and +announcements that take one variable cannot take more than that one +variable. + +If you **don't want to see a specific announcement**, you have to set +its value to ``''`` (note: two single-quotes, not one double-quote). +This will cause MobArena to ignore the announcement. Note that simply +removing the node will not work, as MobArena forcefully adds it back in. diff --git a/docs/user/arena-setup.rst b/docs/user/arena-setup.rst new file mode 100644 index 0000000..ba7c562 --- /dev/null +++ b/docs/user/arena-setup.rst @@ -0,0 +1,270 @@ +########### +Arena setup +########### + +**On this page:** \* `Building an arena <#building-an-arena>`__ \* +`About regions, warps, etc. <#about-regions-warps-etc>`__ \* `Setup +Mode <#setup-mode>`__ \* `Commands <#setup-mode-commands>`__ \* `The +Toolbox <#the-toolbox>`__ \* `Regions <#regions->`__ \* +`Warps <#warps->`__ \* `Spawnpoints <#spawnpoints->`__ \* +`Chests <#chests->`__ + +Building an arena +================= + +A well-built arena consists of a **lobby** for class selection, an +**arena floor**, and either a **spectator area** or an **exit point**. +Let's go over each one... + +**Lobby:** The lobby is where your players will be selecting their +classes when they join an arena. A well-formed lobby consists of *a sign +for each class*, which the players will click to choose a given class, +as well as an *iron block*, which the players will click when they are +ready to start. The signs must have the name of the class on the first +line (case-sensitive), but you can put whatever you want on the +remaining three lines. Note that MobArena *does not* "register" class +sign creation, so you *will not* get a confirmation message (if you do, +it is another plugin interfering). + +**Arena floor:** This is where your players will be fighting monsters. +The arena floor should be enclosed in walls, and possibly with a roof, +such that the players and monsters have no way of getting out. This +ensures that players won't be able to just wander out of the arena. + +**Spectator area:** When players want to spectate a session, they can +use the ``/ma spec`` command to get warped to the spectator area of an +arena. This is also where arena players are warped to when they die, if +``spectate-after-death: true`` in the config-file. The area should be +designed so that it *is not* possible for the spectators to wander out +(into the arena or away from the area), because spectators are +invincible. + +**Exit point:** Upon typing ``/ma leave``, arena players and spectators +will be warped to the location they joined from, unless the arena has an +exit warp (optional). Using exit points, it is possible to control +exactly where players go after a session. + +About regions, warps, etc. +-------------------------- + +Once our arena is built, it's time to set up the MobArena regions, +warps, and points. Before we do so, let's take a look at what these +things are and what MobArena uses them for... + +**Regions:** An arena needs an *arena region*, and optionally a *lobby +region*. MobArena uses the arena region to make sure that players aren't +cheating (by kicking them from the arena if they move outside the +region), and to make sure that only MobArena's own mobs are spawned +inside of it. MobArena is extremely xenophobic (afraid of strangers), so +it tries its best to keep unwanted mobs out of the sessions. Regions are +set using the Region tools. + +**Warps:** When players join a MobArena session, they are teleported to +the *lobby warp* inside the lobby, where they will *pick their class* +and ready up using the *ready block* (block of iron). When everyone is +ready, the players are teleported to the *arena warp* inside of the +arena. Spectators will be teleported to the *spectator warp* in the +spectator area, and when players leave an arena, they will either be +teleported to where they joined from, or to the *exit warp*, if it has +been set up. Warps are set using the Warps tool. + +**Spawnpoints:** The *spawnpoints* of an arena are the locations where +monsters can spawn from. MobArena will only spawn monsters from +spawnpoints that have players nearby (in a 15-block radius). Note that +the number of mobs spawned doesn't depend on how many spawnpoints an +arena has - the number of mobs is determined by a formula (see +[[Formulas]]) that only involves the wave number and player count +(unless you use fixed amounts). Spawnpoints are added using the +Spawnpoints tool. + +**Containers:** The *containers* of an arena are locations of chests, +dispensers, etc. which contain items that will be renewed when the arena +ends. Only registered containers will have their contents renewed, so it +is not enough to simply put a chest in the arena - it also needs to be +registered using the Chests tool. + +Setup Mode +========== + +We will set up the arena using *Setup Mode*. When we enter Setup Mode, +MobArena will temporarily store our inventory and give us a set of +golden tools (the *Toolbox*), each with a different function. We will +also be able to *fly*, making moving around the arena a lot easier. +Last, but not least, we will *not* be able to chat or type normal +commands while in Setup Mode, because Setup Mode starts an *isolated +conversation* with us. + +**To enter Setup Mode:** Type ``/ma setup ``, where ```` +is the name of an arena. Note that if you only have one arena, you don't +have to type the arena name. If the arena you want to set up has not yet +been created, first type ``/ma addarena `` to create it. + +**To leave Setup Mode:** Type ``done``. + +Note that if you have just installed MobArena, there will be a premade +arena-node called ``default`` in the config-file already. If you want a +different name, create a new arena first, and then remove the default +arena by typing ``/ma delarena default``. + +In the next section, we will take a look at the different commands +available in Setup Mode... + +Setup Mode Commands +------------------- + +Setup Mode is an *isolated conversation*, which means Setup Mode will +intercept everything we type. The reason for this is that it makes the +commands in Setup Mode shorter (e.g. ``exp`` instead of +``/ma expandregion``), and it also prevents us from accidentally typing +commands from other plugins. + +Below is a list of all the commands we can use in Setup Mode. Many of +the commands have short-hand aliases which might make them even faster +to type out. As an example, the ``expand`` command has the alias +``exp``. Sometimes it's easier to remember the longer names, but the +short-hand aliases are provided for faster setup. + +- | ``done`` + | Leave Setup Mode. + | **Aliases:** ``end`` ``stop`` ``done`` ``quit`` + +- | ``help`` + | Display help screen. + | **Aliases:** ``?`` ``h`` + +- | ``missing`` + | Display a list of missing (mandatory) regions, warps, and points. + | This command is useful if you have forgotten how far you are in the + setup process, and what you still need to set up. + | **Aliases:** ``miss`` + +- | ``expand `` + | Expand a region by some amount in some direction. + | Valid regions: ``ar`` for the arena region, or ``lr`` for the lobby + region + | Valid amounts: positive integers (whole numbers) + | Valid directions: ``up``, ``down``, or ``out`` + | **Example:** ``expand ar 5 up`` + | **Aliases:** ``exp`` + +- | ``show [||]`` + | Show a region, warp, or point(s) as red wool blocks. + | Valid regions: ``ar`` for the arena region, or ``lr`` for the lobby + region + | Valid warps: ``arena``, ``lobby``, ``spec``, ``exit`` + | Valid points: ``spawns`` (or just ``sp``) for spawnpoints, + ``chests`` (or just ``c``) for chests + | **Example:** ``show sp`` + +The Toolbox +----------- + +The Toolbox is a set of golden tools, where each tool has a specific +function. We will use these tools to set up the regions, warps, and +points of our arena. The tools are used by left- or right-clicking a +block while holding them, and the actions vary depending on the specific +tool. + +Note that the functions of a tool are described in the *item tooltip*, +which we can see by opening up our inventory and hovering our mouse over +the tools. + +Regions |Region Tools| +~~~~~~~~~~~~~~~~~~~~~~ + +The arena and lobby regions can be set up using the Region tools (axe). +There are two golden axes in the Toolbox, and they both behave the same, +except that one is for the arena region, and the other is for the lobby +region. The tools are named accordingly, and they will display either +"Arena Region" or "Lobby Region" above the quickbar when we select them. + +Note that the behavior of the Region tools is similar to that of the +WorldEdit wand (wooden axe), so if you are familiar with defining +regions in WorldEdit, the Region tools should feel familiar. + +| **Left-click:** Set the first point to be the location of the target + block +| **Right-click:** Set the second point to be the location of the target + block + +Upon setting both points, the region will be defined. Type ``show ar`` +(or ``show lr``) to check that the region spans the desired area. If the +region is a little bit too small, use the ``expand`` command (see above) +to make it a little bigger. + +**Note:** The region MUST look like a box (3D) and not a rectangle (2D). +If the region is just a rectangle, your arena will not work correctly. +The same applies if the arena floor is not fully contained in the box, +so make sure to expand the region down a block or two to be sure. + +Warps |Warps Tool| +~~~~~~~~~~~~~~~~~~ + +The arena, lobby, spectator, and exit warps can be set up using the +Warps tool (hoe). The tool knows about all the warps, and we have to +*cycle through them* to select the warp we want to place. The default +selected warp is the *arena warp*. + +| **Left-click:** Set the currently selected warp on top of the target + block +| **Right-click:** Cycle between available warps + +When left-clicking, the selected warp will be set to the top of the +clicked block. The pitch (up and down) will be set to 0, which means +when players are teleported, they will be looking "straight ahead". The +yaw (rotation, left/right) will be set to whatever direction we are +facing, when we set the warp. This means that we need to rotate +ourselves to be looking in the direction we want the players to look in +when they are teleported to the point. + +**Note:** The arena, lobby, and spectator warps are all required. The +exit warp is optional. + +Spawnpoints |Spawnpoints Tool| +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The spawnpoints can be set up using the Spawnpoints tool (sword). The +tool knows about all the spawnpoints of the arena, and allows us to +remove existing ones or add new ones as we please. + +| **Left-click:** Add a spawnpoint on top of the target block +| **Right-click:** Remove the spawnpoint on top of the target block (if + the spawnpoint exists) + +When left-clicking, a spawnpoint will be added on top of the clicked +block, if one doesn't already exist. Right-clicking a block will remove +a spawnpoint on that block, if one exists. + +**Note:** Due to limitations and "bugs" in Minecraft, it is not possible +(read: viable) to spawn mobs further than 15 blocks away from a player, +and still make it target and attack the player naturally. Therefore, it +is recommended to place many spawnpoints, so that every single location +in the arena is within a 15-block radius of a spawnpoint. If a player is +not within 15 blocks of any spawnpoint, MobArena will print a warning to +the console with the coordinates. If no players are within 15 blocks of +any spawnpoint, MobArena will default to using all spawnpoints, which +may result in mobs spawning far away from players, so they will have to +run around searching for them. + +Chests |Chests Tool| +~~~~~~~~~~~~~~~~~~~~ + +The chests and containers can be set up using the Chests tool (spade). +It works very much like the Spawnpoints tool, but requires that the +clicked block is a valid container. + +| **Left-click:** Register the clicked container (if it wasn't + registered) +| **Right-click:** Unregister the clicked container (if it was + registered) + +When left-clicking a container, MobArena will register the container (if +it wasn't registered already), such that when an arena session ends, the +container will be restored to contain whatever was in it when the arena +began. Right-clicking a container will unregister it. + +.. |Region Tools| image:: http://puu.sh/4wwCH.png +.. |Warps Tool| image:: http://puu.sh/4wwIB.png +.. |Spawnpoints Tool| image:: http://puu.sh/4wwCJ.png +.. |Chests Tool| image:: http://puu.sh/4wwIF.png + diff --git a/docs/user/class-chests.rst b/docs/user/class-chests.rst new file mode 100644 index 0000000..d9fda69 --- /dev/null +++ b/docs/user/class-chests.rst @@ -0,0 +1,106 @@ +############ +Class chests +############ + +**On this page:** \* `About Class Chests <#about-class-chests>`__ \* +`Linked Class Chests <#linked-class-chests>`__ + +About Class Chests +------------------ + +If some of your favorite items aren't supported by MobArena's internal +[[item parser\|Item and Reward Syntax]], or if you just want to be able +to configure your class items from in-game, the **class chests** may be +what you're looking for! + +-------------- + +**Note: The Class Chests will only work for arenas with +``use-class-chests: true``, and the classes *MUST* exist in the +config-file for MobArena to recognize them, however the items and armor +lists can be empty.** \* \* \* + +The idea behind the class chests is to simply place some **chests below +the corresponding class signs** in the lobby, and fill them with +whatever items you want the given class to have. When the players +activate the class signs, the **contents of the chests are copied to the +player inventory**. This suggests a type of "control room" setup, where +an admin-only access room below the lobby contains the chests, allowing +admins to warp down there and change the contents of the chests. + +.. figure:: img/1.png + :alt: Lobby and Control Room + + Lobby and Control Room + +For easier access and modification of the class chests, omitting the +control room from the arena or lobby region may prove useful. Otherwise, +arenas may have to be temporarily disabled or put into edit mode to +allow warping to and changing the contents of the chests. + +The class chests can be located **up to 6 blocks below the sign** itself +or below the block right behind the sign (for wall signs, this would be +the block the sign is attached to). The chest may also be in the block +directly behind the sign itself - this is safe, because MobArena +prevents players in the lobby from opening inventories, so if your lobby +is in a tight spot, this might be the better option. + +**Multiple sign rows:** It is possible to have two rows of class signs +in the lobby and still use this feature. Simply place the class chest +for the sign of the bottom row exactly at the 6-block limit, and the +class chest for the sign of the top row one block up and behind the +other chest (in a stair-like fashion). The blocks are searched in a +vertical/pillar-like fashion, which is the reason this works. + +.. figure:: img/2.png + :alt: Chests Below + + Chests Below + +To get **auto-equipped armor** from the class chests, place the armor +pieces in the **last four slots of the third row** in the chest. +MobArena will check these four slots, and if any of them are armor +pieces, they will be equipped. Note that the item placed in the very +last slot (bottom right), will always be equipped as a helmet (this +allows wool blocks, pumpkins, etc. to be used as helmets). The order of +the other three slots doesn't matter. + +The **fifth last slot**, right next to the armor slots, will be equipped +as an **off-hand** item. + +.. figure:: img/3.png + :alt: Armor Slots + + Armor Slots + +The class chests are the best way to add items that are not currently +supported by the MobArena [[item parser\|Item Syntax]]. This is because +the class chests **simply copy the contents of the chests** to the +player inventories, thus making any items supported by Bukkit supported +by MobArena. + +.. figure:: img/4.png + :alt: Dyed Armor + + Dyed Armor + +Linked Class Chests +------------------- + +If per-arena class chest setups is too troublesome (e.g. if you have +many arenas), if you don't need per-arena setups, or if you simply want +a single, global class chest for each class, *linked class chests* are +what you're looking for. + +When you link a chest to a class, MobArena will always copy the contents +of that chest to the player's inventory, when they pick the given class, +regardless of any local class chests (note that the arena must still +have ``use-class-chests: true``). + +To link a chest to a class, simply look at the chest and type +``/ma classchest ``, and you're done! The linked class chests may +exist in any world, but remember that there can only be one class chest +per class, and that local class chests will be ignored! + +To unlink a class chest, you will have to open the config-file and +remove the ``classchest`` node from the given class. diff --git a/docs/user/commands.rst b/docs/user/commands.rst new file mode 100644 index 0000000..a5b1336 --- /dev/null +++ b/docs/user/commands.rst @@ -0,0 +1,91 @@ +######## +Commands +######## + +Note: All MobArena commands start with ``/ma``, and most of them can be +disabled using [[Permissions]]. + +If you are looking for ways to disable non-MobArena commands, look in +the ``global-settings``-section of the [[config-file setup page\|setting +up the config-file]]. + +Player commands +~~~~~~~~~~~~~~~ + +These commands can be issued by all players. They include joining, +leaving, spectating and listing arenas as well as listing players. + +- ``/ma join ()`` or ``/ma j ()`` - Join the arena with + the given name. +- ``/ma leave`` or ``/ma l`` - Leave the current arena, or the + spectator area. +- ``/ma notready`` - Get a list of all players who aren't ready. +- ``/ma spec ()`` or ``/ma s ()`` - Spectate the arena + with the given name. +- ``/ma arenas`` - Get a list of all arenas. Green names are enabled, + gray names are disabled. +- ``/ma players`` - Get a list of all arena players. +- ``/ma players `` - Get a list of arena players in the + specified arena. +- ``/ma class `` - While in the lobby, manually pick the given + class instead of punching signs. + +Admin commands +~~~~~~~~~~~~~~ + +Only ops and the console can issue these commands. They include +forcefully starting or ending arenas, enabling/disabling individual +arenas or MobArena entirely. + +- ``/ma enable`` - Enable MobArena. +- ``/ma disable`` - Disable MobArena. +- ``/ma enable `` - Enable the arena with the specified name. +- ``/ma disable `` - Disable the arena with the specified name. +- ``/ma force end`` - Forcefully end all arenas. +- ``/ma force end `` - Forcefully end the arena with the + specified name; forces all players to leave. +- ``/ma force start `` - Forcefully start the arena with the + specified name; forces all players who aren't ready to leave. +- ``/ma notready `` - Get a list of all players in the given + arena who aren't ready. +- ``/ma restore `` - Restore the inventory of the player with + the given name, if possible. +- ``/ma config reload`` - Reload the config-file into memory. This is + useful if changes are made in the config-file while the server is + running. + +Setup commands +~~~~~~~~~~~~~~ + +Only ops (and the console, if it makes sense) can issue these commands. +They include setting warp points, spawnpoints and region points. + +- ``/ma setup `` - Enter [[Setup Mode\|Arena Setup]] for the + given arena. +- ``/ma addarena `` - Create a new arena-node in the current + world. +- ``/ma delarena `` - Delete the arena with the given name. +- ``/ma editarena `` - Toggle Edit Mode for the given arena. +- ``/ma editarena [true|false]`` - Turn on or off Edit Mode for + the given arena. +- ``/ma setting `` - List all per-arena settings for the given + arena. +- ``/ma setting `` - Check the current value of the + given setting for the given arena. +- ``/ma setting `` - Set the value of the + given setting for the given arena to the given value. +- ``/ma checkspawns`` - Shows the spawnpoints (of the arena you are + currently standing in) which cover your current location as red wool + blocks. This command can be used to check if specific points in your + arena are actually covered by spawnpoints or not. +- ``/ma classchest `` - While looking at a chest, link the chest + to the given class as a [[linked class chest\|Class Chests]]. Linking + a class chest means MobArena will always copy the items from the + linked chest, regardless of any local class chests in arena lobbies. + This is useful if you want a global class chest for a class. +- ``/ma auto-generate `` - Auto-generate a new arena with the + given name. The arena will be generated just below the player in the + world they are standing in. +- ``/ma auto-degenerate `` - Degenerate the arena with the given + name, effectively restoring the patch that was "bulldozed" with the + auto-generator. diff --git a/docs/user/getting-started.rst b/docs/user/getting-started.rst new file mode 100644 index 0000000..1a3a844 --- /dev/null +++ b/docs/user/getting-started.rst @@ -0,0 +1,60 @@ +############### +Getting started +############### + +To get MobArena up and running on your server, you'll first have to +download it and stick it in your server's plugins-folder. + +When the plugin has been loaded up, you'll have to build an arena if you +haven't already. Then it's time to set it up. Follow the instructions on +the [[Arena Setup]] page, which has all the information you'll need to +get your arena up and running in no time at all. After setup, you're +ready to play! Check out the [[Using MobArena]] page for a brief +description of the usage commands. + +The default arena setup is only meant as a starting point, so you may +want to configure the waves, the rewards, the classes, or perhaps some +of the arena-specific settings. The various pages on this wiki will help +you configure MobArena to your liking. Here are a couple of links to get +you started: + +- [[Setting up the config-file]] +- [[Setting up the waves]] +- [[MobArena Commands]] + +Also make sure to have a look at the [[Item and Reward Syntax]] page, if +you're planning to change the classes or the rewards. MobArena uses its +own semi-compact item syntax in the config-file, so you'll need to get +familiar with it to get things like enchantments and sub-types to work. + +**************** +More information +**************** + +Always make sure to check the pages on the wiki when you're in doubt - +99% of the information you'll ever need is right here. Check out the +[[list of wiki +pages\|https://github.com/garbagemule/MobArena/wiki/\_pages]] to see if +maybe you'd be able to find your answer there. You can also check the +project pages on +[[Spigot\|https://www.spigotmc.org/resources/mobarena.34110/]] and +[[Bukkit\|http://dev.bukkit.org/bukkit-plugins/mobarena/]]. + +*********************** +Suggestions, bugs, etc. +*********************** + +If you think you have found a bug, or if you have a suggestion for the +plugin, you can create a ticket here on Github. Make sure to be as +descriptive as possible, because the more information you can provide, +the easier it is to do something about your bug report or feature +request. + +If you'd rather have a little chat about the plugin, you can visit the +[[IRC channel\|http://webchat.esper.net/?channels=#mobarena]] (#mobarena +@ EsperNet) - please note that IRC is *idle chat*, which means people +will appear to be in the channel, but they might not be at their +computers when you join. Hop on, ask your question, and then hang around +until you get an answer; it may be seconds, minutes or hours, but there +is no harm in hanging around the channel indefinitely (as many people +do). diff --git a/docs/user/item-reward-syntax.rst b/docs/user/item-reward-syntax.rst new file mode 100644 index 0000000..eca7298 --- /dev/null +++ b/docs/user/item-reward-syntax.rst @@ -0,0 +1,186 @@ +###################### +Item and reward syntax +###################### + +**On this page:** \* `Overview <./Item-and-Reward-Syntax#an-overview>`__ +\* `Single Items <./Item-and-Reward-Syntax#1-single-items>`__ \* +`Multiple Items <./Item-and-Reward-Syntax#2-multiple-items>`__ \* `Item +Sub-Types <./Item-and-Reward-Syntax#3-item-sub-types-potions-wool-dyes-etc>`__ +\* `Note about item +IDs <./Item-and-Reward-Syntax#an-important-note-on-using-item-ids>`__ \* +`Enchantments <./Item-and-Reward-Syntax#enchantments>`__ \* `Economy +Money <./Item-and-Reward-Syntax#economy-money>`__ \* `Command +Rewards <./Item-and-Reward-Syntax#command-rewards>`__ + +An Overview +~~~~~~~~~~~ + +Items in MobArena follow a very specific syntax that you **must** obey, +or you will experience missing items or errors. Be attentive to the +details, because if you aren't, there will be consequences. + +MobArena allows these three different ways of defining items: + +:: + + Single: [|] + Multiple: [|]: + Sub-types: [|]:: + +Confusing? Let's break them down one by one. + +1. Single Items +~~~~~~~~~~~~~~~ + +:: + + [|] + +This means you can use either the item ID (````), or the item name +(````) as defined in the `Material enum of the Bukkit +API `__. +The item names are case-insensitive. + +Note that the Material enum changes when there are new items or +sometimes if items were reworked. As an example, the ``SPLASH_POTION`` +enum value is not available in versions prior to Minecraft 1.9. Before +then, splash potions were simply ``POTION``\ s with a higher data value. + +**Make sure to read `the important note on item +IDs <./Item-Syntax#an-important-note-on-using-item-ids>`__!** + +Examples: ``diamond_sword``, ``stone``, ``42`` (iron block), ``322`` +(snowball) + +2. Multiple Items +~~~~~~~~~~~~~~~~~ + +:: + + [|]: + +This way, you append an ```` to the item, specifying how many of +the given item you want. This is useful for giving out stuff like arrows +or potions that you generally want to give more than one of. + +Note that if you use this syntax, it is indeed the *amount* you specify, +not the item sub-type. We go over sub-types in the `next +section <./Item-Syntax#3-item-sub-types-potions-wool-dyes-etc>`__. + +**Make sure to read `the important note on item +IDs <./Item-Syntax#an-important-note-on-using-item-ids>`__!** + +Examples: ``arrow:64``, ``grilled_pork:4``, ``46:10`` (10x TNT), +``142:5`` (5x potato) + +3. Item Sub-Types (potions, wool, dyes etc.) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + [|]:: + +This way, you append **BOTH** a ```` value (the sub-type) and an +````, regardless of how many of the given item you want. This +syntax is mostly used with potions, which have special sub-type values +in the 8000's and 16000's. Check out `this +page `__ for +the potion sub-types. + +For wool and dyes (ink sacks), you don't have to use the numeric data +value. Instead, you can use the *color names* as defined in the +`DyeColor *enum* of the Bukkit +API `__. + +**Make sure to read `the important note on item +IDs <./Item-Syntax#an-important-note-on-using-item-ids>`__!** + +Examples: ``wool:blue:1`` (one blue wool), ``ink_sack:brown:10`` (ten +cocoa beans), ``potion:8201:1`` (one strength potion), ``373:8197:2`` +(two health potions) + +An important note on using item IDs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you choose to use item IDs, there is a catch. If an item is *alone* +in its node, it **MUST** be enclosed in apostrophes, or YAML will crap +itself. For example, if you decide to have a Barbarian class that only +has a pair of *lederhosen* as armor, and nothing put a couple of health +potions, you need to do it like this: + +:: + + classes: + Barbarian: + items: '373:8197:2' + armor: '300' + +In other words, you have to put ``'300'`` in the ``armor``-node, *not +just* ``300``, and you have to put ``'373:8197:2'`` in the +``items``-node, *not just* ``373:8197:2``. This requirement is removed +if you use the item names instead, or if you add +`enchantments <./Item-Syntax#enchantments>`__ to the given item. + +Enchantments +~~~~~~~~~~~~ + +Enchantments can be added to items by appending a space, followed by a +*semi-colon separated list* of pairs ``:``, where ```` +is an enchantment ID as defined by the `Enchantment Wrappers in the +Bukkit +API `__ +(the numbers in the parentheses at the end of each line), i.e.: + +:: + + :;:;... + +The ```` is any item following the normal item syntax as described +above. Here is an example: + +:: + + diamond_sword 16:2;19:5 + +This line gives a diamond sword with sharpness (ID 16) level 2, and +knockback (ID 19) level 5. + +Economy Money +~~~~~~~~~~~~~ + +:: + + $ + +MobArena supports entry fees and rewards in the form of money from +economy plugins. This feature *requires Vault*. The format quite simply +means that you type in a dollar sign followed by a valid monetary value. + +Examples: ``$1``, ``$5``, ``$3.14`` (v0.96+), ``$0.99`` (v0.96+) + +Command Rewards +~~~~~~~~~~~~~~~ + +Since v0.99, MobArena supports commands as rewards. This means that you +can have the server run a command that targets the recipient player. +This is useful for granting persistent permissions via your permissions +plugin, or integrating with rewards from other plugins, like rewarding +tokens or special items with lore. The basic syntax is this: + +:: + + cmd:/give dirt + +If the player is "garbagemule", this setting will run the command "/give +garbagemule dirt" when the arena session ends. Note that this syntax +will display as +``[MobArena] You just earned a reward: /give dirt``, which +isn't very pretty. If you want the reward to have a title, simply expand +the ``cmd`` with the name in a parenthesis: + +:: + + cmd(a very nice thing):/give dirt + +This will display as +``[MobArena] You just earned a reward: a very nice thing`` diff --git a/docs/user/leaderboards.rst b/docs/user/leaderboards.rst new file mode 100644 index 0000000..69f7b0f --- /dev/null +++ b/docs/user/leaderboards.rst @@ -0,0 +1,68 @@ +############ +Leaderboards +############ + +MobArena supports so-called *leaderboards* (although technically they +are more like scoreboards or session signs). By arranging signs in a +two-dimensional grid on a wall, spectators can see which classes each +player has chosen, which wave they died on, how many kills and how much +damage they have done, etc. + +.. figure:: img/leaderboards/1.png + :alt: Sign Grid + + Sign Grid + +The requirements for leaderboards are at the very least two rows of +signs on a wall as seen in the screenshot above. The top row should not +be empty, however, as it should contain the leaderboard *headers*, which +denote what kind of information the signs below them display. How many +headers (and which) you want is entirely up to you. + +.. figure:: img/leaderboards/2.png + :alt: Top Left Sign + + Top Left Sign + +To get started, replace the top left empty sign (or place it if you +haven't already), and write ``[MA]``, where ```` is the name +of your arena, on the first line. In the screenshot above, I have set up +the top left sign for the arena named Jail by writing ``[MA]jail`` on +it. MobArena automatically fills in the rest of the text and the colors +for you. + +.. figure:: img/leaderboards/3.png + :alt: Sign Text Screen + + Sign Text Screen + +MobArena will then tell you that the sign has been created, and that you +should set up the rest of the signs. The rest of the headers follow the +same kind of format as the top left sign, so you simply write +``[MA]``, where ```` is one of the following: + +- ``class`` - The class name of the player +- ``lastWave`` - The last wave the player was part of (current wave if + still alive) +- ``kills`` - The number of monsters the player has killed +- ``dmgDone`` - The amount of damage the player has dealt +- ``dmgTaken`` - The amount of damage the player has taken +- ``swings`` - The number of times the player has swung their weapon +- ``hits`` - The number of times the player has swung their weapon and + successfully hit a monster + +In the screenshot above, I have already set up a couple of signs, and +I'm about to set up the sign for damage done. As with the top left sign, +your only job is to tell MobArena which stat you want - it'll take care +of colors and formatting automatically. Note that MobArena's sign +handling is case sensitive, so make sure you get it right. + +.. figure:: img/leaderboards/4.png + :alt: Final Setup + + Final Setup + +When you're done setting up the leaderboards, they should look something +like the screenshot above, and you should be good to go! Leaderboards +can be set up anywhere (even outside of the world the arena is in), but +you can only have a single leaderboard per arena. diff --git a/docs/user/monster-types.rst b/docs/user/monster-types.rst new file mode 100644 index 0000000..f113595 --- /dev/null +++ b/docs/user/monster-types.rst @@ -0,0 +1,38 @@ +############# +Monster types +############# + +MobArena supports any monster available in the `EntityType +enum `__. +You don't have to write the names in all caps, and you can omit or +include underscores (``_``), hyphens (``-``), and periods (``.``) as you +please. + +Some monsters are a little special. Creepers, for instance, can be +charged or powered, meaning their explosions become much more powerful, +and their appearance changes. Another example is slimes and magma cubes, +which have different sizes. + +MobArena supports some of the variations of these different monster +types, and they are listed here: + +- ``explodingsheep`` is a MobArena-specific type of sheep that bounces + around and explodes when in the proximity of a player +- ``poweredcreeper`` is a charged/powered creeper +- ``angrywolf`` is an aggressive wolf with red eyes +- ``babyzombie`` is a baby-version of a zombie +- ``babypigman`` is a baby-version of a pigman +- ``babyzombievillager`` is a baby-version of a zombie villager +- ``killerbunny`` is a killer bunny version of a rabbit + +As for slimes and magma cubes, both monster types are assigned a random +size when they spawn. However, they also both support size suffixes that +force them to be a specific size. They are: + +- ``tiny`` size 1 +- ``small`` size 2 +- ``big`` size 3 +- ``huge`` size 4 + +As an example, ``slimehuge`` will spawn a size 4 slime, while +``magmacubetiny`` will spawn a size 1 magma cube. diff --git a/docs/user/permissions.rst b/docs/user/permissions.rst new file mode 100644 index 0000000..47ef6f9 --- /dev/null +++ b/docs/user/permissions.rst @@ -0,0 +1,179 @@ +########### +Permissions +########### + +A permissions plugin **is NOT required** for MobArena to work, but if +you want that extra bit of control, here's a rundown of the different +types of permission nodes you can use with MobArena. + +**NOTE: MobArena uses sane defaults. This means that by default, all +players can use all arenas and all classes, and ops can use all admin +and setup commands. Unless you want to prevent some groups from +accessing certain arenas or classes, or you want to give non-ops admin +and setup permissions, there is no need to mess with any permissions at +all, so go away from this page and remove all occurrences of +``mobarena`` in your permissions-file!** + +Arenas +~~~~~~ + +Did you read the note at the top? If not, read it before you continue. + +So, you want to remove permissions for certain arenas from certain +users? Alright, that means you will have to *negate* or *revoke* the +permissions in your permissions plugin. In bPermissions, the negation +modifier is a caret, ``^``, in GroupManager and PermissionsEx it is a +minus, ``-``, and in zPermissions it is by setting the permission to +``false``. The examples below revoke the permission for the default +arena. + +| bPermissions: ``^mobarena.arenas.default`` +| GroupManager: ``-mobarena.arenas.default`` +| zPermissions: ``mobarena.arenas.default: false`` + +I recommend letting everyone enjoy all your arenas, but this could be +used in combination with "leveling" plugins to allow players to use +"harder" arenas at higher levels. It could also be used for +sponsors-only arenas. + +Still confused? Check the `sample setup <#sample-setup>`__ at the bottom +of the page! + +Classes +~~~~~~~ + +Did you read the note at the top? If not, read it before you continue. + +Alright, if you're reading this, you want to remove permissions for +certain classes from certain users. As with the arena permissions, you +need to *negate* or *revoke* the permissions in your permissions plugin. +In bPermissions, the negation modifier is a caret, ``^``, in +GroupManager and PermissionsEx it is a minus, ``-``, and in zPermissions +it is by setting the permission to ``false``. The examples below revoke +the permission for the Knight class. + +| bPermissions: ``^mobarena.classes.knight`` +| GroupManager: ``-mobarena.classes.knight`` +| zPermissions: ``mobarena.classes.knight: false`` + +**Note how the class name is lowercase.** This is important. Even if the +Knight class is called ``KnIGhT`` in your config-file, it MUST be all +lowercase in your permissions-file. + +As with arenas, I recommend letting everyone enjoy all the classes, +unless you have a special reason not to. + +Still confused? Check the `sample setup <#sample-setup>`__ at the bottom +of the page! + +Commands +~~~~~~~~ + +Did you read the note at the top? If not, read it before you continue. + +If you're reading this, you want to either give certain users access to +some of the admin and/or setup commands, or you want to remove some of +the user commands from some groups. If this is not the case, stop +reading and leave this page! + +The first group of commands are the user commands. They are accessible +by all players by default, so don't put ``mobarena.use.*`` or something +stupid like that in your permissions-file! If you want a group to not +have access to the user commands, *negate* the permission +``mobarena.use``, which is the *parent permission node* for all the user +commands. See the classes and arenas sections for information on how to +negate permissions. If that doesn't work, negate the +``mobarena.use.join`` and ``mobarena.use.spec`` permissions. That should +be enough. + +:: + + mobarena.use.join + mobarena.use.leave + mobarena.use.spec + mobarena.use.arenalist + mobarena.use.playerlist + mobarena.use.notready + mobarena.use.class + +The admin commands are simple. They allow disabling/enabling MobArena +and individual arenas, kicking players from the arenas, restoring player +inventories if they got lost somehow, forcing arenas to start or end, +and teleporting in and out of arenas regardless of what the arena state +is. If you want to grant all of these permissions, use the *parent +permission node* ``mobarena.admin``. Don't mess around with ``*`` or +something stupid like that. + +:: + + mobarena.admin.enable + mobarena.admin.kick + mobarena.admin.restore + mobarena.admin.force + mobarena.admin.teleport + +Setup commands are only for ops, just like admin commands. **Do not** +give these permissions to random people, because they can remove your +arenas and destroy your config-files, if they do something stupid. The +setup commands allow you to manage arenas, regions, spawnpoints, chests, +leaderboards, etc. They also allow you to set up new classes in-game. If +you want to grant all of these permissions, use the *parent permission +node* ``mobarena.setup``. Don't mess around with ``*`` or something +stupid like that. + +:: + + mobarena.setup.config + mobarena.setup.setup + mobarena.setup.setting + mobarena.setup.addarena + mobarena.setup.removearena + mobarena.setup.editarena + mobarena.setup.spawnpoints + mobarena.setup.containers + mobarena.setup.checkdata + mobarena.setup.checkspawns + mobarena.setup.classchest + mobarena.setup.classes + mobarena.setup.leaderboards + mobarena.setup.autogenerate + mobarena.setup.autodegenerate + +Sample setup +~~~~~~~~~~~~ + +Assume you have a class called DiamondKnight that you only want your +donors to be able to use (very common use case). How do you set up your +permissions plugin when you have to revoke the class permission from the +default group, but the donor group inherits from the default group? It's +very simple: You're doing it wrong... + +What you have to do instead is make an *auxiliary default*-group that +contains all your default permissions, and have your default group +inherit from that group, and furthermore revoke the DiamondKnight class +permission in MobArena. Your donor group then also inherits from the +auxiliary group, and everything is wonderful. Confusing? Here's a +pseudo-code example: + +:: + + default-aux: <-- This is the auxiliary group that is to + permissions: be inherited by the default group and + - essentials.balance the donor group. It is not used for + - essentials.pay anything else. + - essentials.sell + + default: <-- This is the default group. It inherits + inherits: default-aux from default-aux, but also revokes the + permissions: permission for the special class. + - -mobarena.classes.diamondknight + + donor: <-- This is the donor group, which also + inherits: default-aux inherits from default-aux, but it + permissions: does not revoke any class permissions, + - essentials.balance.others which means it has access to all of + - essentials.kit them by default. + +This sample setup is **pseudo code** and cannot be simply copy/pasted +into your own permissions file. It's your job to figure out how your +permissions plugin works, and what its syntax is. diff --git a/docs/user/setting-up-config-file.rst b/docs/user/setting-up-config-file.rst new file mode 100644 index 0000000..4422ed9 --- /dev/null +++ b/docs/user/setting-up-config-file.rst @@ -0,0 +1,530 @@ +########################## +Setting up the config file +########################## + +**On this page:** \* +`Overview <./Setting-up-the-config-file#wiki-an-overview>`__ \* +```global-settings`` <./Setting-up-the-config-file#wiki-global-settings>`__ +\* ```classes`` <./Setting-up-the-config-file#wiki-classes>`__ \* `Bring +your own items <./Setting-up-the-config-file#bring-your-own-items>`__ \* +`Slot-specific armor +nodes <./Setting-up-the-config-file#slot-specific-armor-nodes>`__ \* +`Price <./Setting-up-the-config-file#price>`__ \* `Unbreakable +items <./Setting-up-the-config-file#wiki-unbreakable-weaponsarmor>`__ \* +`Per-class +permissions <./Setting-up-the-config-file#wiki-per-class-permissions>`__ +\* `Pet classes <./Setting-up-the-config-file#wiki-pet-classes>`__ \* +`Mounts <./Setting-up-the-config-file#wiki-mounts>`__ \* +```arenas`` <./Setting-up-the-config-file#wiki-arenas>`__ \* +```settings`` <./Setting-up-the-config-file#wiki-settings>`__ \* +```waves`` <./Setting-up-the-config-file#wiki-waves>`__ \* +```rewards`` <./Setting-up-the-config-file#wiki-rewards>`__ \* +```coords`` <./Setting-up-the-config-file#wiki-coords>`__ + +An Overview +~~~~~~~~~~~ + +*Note: When editing the config-file, you **MUST use spaces for +indentation**! Using tabs instead of spaces will give you errors!* + +The config-file, ``plugins/MobArena/config.yml``, consists of 3 +sections: ``global-settings``, ``classes``, and ``arenas``. The default +config-file that is generated when MobArena is first loaded looks +something like this: + +:: + + [...] + global-settings: + update-notification: true + enabled: true + allowed-commands: /list + prefix: '&a[MobArena] ' + classes: + Knight: + items: diamond_sword, grilled_pork:2 + armor: 306,307,308,309 + Archer: + items: wood_sword, bow, arrow:128, grilled_pork + armor: 298,299,300,301 + [...] + arenas: + default: + settings: + prefix: '' + world: Tundra + enabled: true + protect: true + clear-wave-before-next: false + [...] + waves: + [...] + rewards: + [...] + +Note about notation: ``[true|false]`` means the setting must be "true or +false", either or. ``