mirror of
https://github.com/garbagemule/MobArena.git
synced 2025-01-09 01:48:13 +01:00
Convert all GitHub wiki pages into ReStructuredText documents, set up ReadTheDocs
This commit is contained in:
parent
48ae60e070
commit
79c607f96d
12
README.md
12
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.
|
||||
|
20
docs/Makefile
Normal file
20
docs/Makefile
Normal file
@ -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)
|
168
docs/conf.py
Normal file
168
docs/conf.py
Normal file
@ -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'),
|
||||
]
|
||||
|
||||
|
||||
|
32
docs/index.rst
Normal file
32
docs/index.rst
Normal file
@ -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`
|
36
docs/make.bat
Normal file
36
docs/make.bat
Normal file
@ -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
|
3
docs/requirements.txt
Normal file
3
docs/requirements.txt
Normal file
@ -0,0 +1,3 @@
|
||||
## Theme for Sphinx documentation
|
||||
Sphinx
|
||||
sphinx_rtd_theme
|
11
docs/test-docs.sh
Executable file
11
docs/test-docs.sh
Executable file
@ -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
|
||||
|
23
docs/user/announcements.rst
Normal file
23
docs/user/announcements.rst
Normal file
@ -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 <http://minecraft.gamepedia.com/Formatting_codes#Color_codes>`__,
|
||||
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.
|
270
docs/user/arena-setup.rst
Normal file
270
docs/user/arena-setup.rst
Normal file
@ -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 <arena>``, where ``<arena>``
|
||||
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 <arena>`` 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 <region> <amount> <direction>``
|
||||
| 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 [<region>|<warp>|<point>]``
|
||||
| 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
|
||||
|
106
docs/user/class-chests.rst
Normal file
106
docs/user/class-chests.rst
Normal file
@ -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 <class>``, 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.
|
91
docs/user/commands.rst
Normal file
91
docs/user/commands.rst
Normal file
@ -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 (<arena>)`` or ``/ma j (<arena>)`` - 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 (<arena>)`` or ``/ma s (<arena>)`` - 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 <arena>`` - Get a list of arena players in the
|
||||
specified arena.
|
||||
- ``/ma class <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 <arena>`` - Enable the arena with the specified name.
|
||||
- ``/ma disable <arena>`` - Disable the arena with the specified name.
|
||||
- ``/ma force end`` - Forcefully end all arenas.
|
||||
- ``/ma force end <arena>`` - Forcefully end the arena with the
|
||||
specified name; forces all players to leave.
|
||||
- ``/ma force start <arena>`` - Forcefully start the arena with the
|
||||
specified name; forces all players who aren't ready to leave.
|
||||
- ``/ma notready <arena>`` - Get a list of all players in the given
|
||||
arena who aren't ready.
|
||||
- ``/ma restore <player>`` - 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 <arena>`` - Enter [[Setup Mode\|Arena Setup]] for the
|
||||
given arena.
|
||||
- ``/ma addarena <arena>`` - Create a new arena-node in the current
|
||||
world.
|
||||
- ``/ma delarena <arena>`` - Delete the arena with the given name.
|
||||
- ``/ma editarena <arena>`` - Toggle Edit Mode for the given arena.
|
||||
- ``/ma editarena <arena> [true|false]`` - Turn on or off Edit Mode for
|
||||
the given arena.
|
||||
- ``/ma setting <arena>`` - List all per-arena settings for the given
|
||||
arena.
|
||||
- ``/ma setting <arena> <setting>`` - Check the current value of the
|
||||
given setting for the given arena.
|
||||
- ``/ma setting <arena> <setting> <value>`` - 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 <class>`` - 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 <arena>`` - 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 <arena>`` - Degenerate the arena with the given
|
||||
name, effectively restoring the patch that was "bulldozed" with the
|
||||
auto-generator.
|
60
docs/user/getting-started.rst
Normal file
60
docs/user/getting-started.rst
Normal file
@ -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).
|
186
docs/user/item-reward-syntax.rst
Normal file
186
docs/user/item-reward-syntax.rst
Normal file
@ -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: [<id>|<name>]
|
||||
Multiple: [<id>|<name>]:<amount>
|
||||
Sub-types: [<id>|<name>]:<data>:<amount>
|
||||
|
||||
Confusing? Let's break them down one by one.
|
||||
|
||||
1. Single Items
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
[<id>|<name>]
|
||||
|
||||
This means you can use either the item ID (``<id>``), or the item name
|
||||
(``<name>``) as defined in the `Material enum of the Bukkit
|
||||
API <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html>`__.
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
[<id>|<name>]:<amount>
|
||||
|
||||
This way, you append an ``<amount>`` 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.)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
[<id>|<name>]:<data>:<amount>
|
||||
|
||||
This way, you append **BOTH** a ``<data>`` value (the sub-type) and an
|
||||
``<amount>``, 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 <http://www.minecraftwiki.net/wiki/Potions#Primary_potions>`__ 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 <http://jd.bukkit.org/rb/apidocs/src-html/org/bukkit/DyeColor.html#line.10>`__.
|
||||
|
||||
**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 ``<eid>:<level>``, where ``<eid>``
|
||||
is an enchantment ID as defined by the `Enchantment Wrappers in the
|
||||
Bukkit
|
||||
API <http://jd.bukkit.org/rb/apidocs/src-html/org/bukkit/enchantments/Enchantment.html#line.12>`__
|
||||
(the numbers in the parentheses at the end of each line), i.e.:
|
||||
|
||||
::
|
||||
|
||||
<item> <eid>:<level>;<eid>:<level>;...
|
||||
|
||||
The ``<item>`` 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
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
$<amount>
|
||||
|
||||
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 <player> 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 <player> 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 <player> dirt
|
||||
|
||||
This will display as
|
||||
``[MobArena] You just earned a reward: a very nice thing``
|
68
docs/user/leaderboards.rst
Normal file
68
docs/user/leaderboards.rst
Normal file
@ -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]<name>``, where ``<name>`` 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]<stat>``, where ``<stat>`` 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.
|
38
docs/user/monster-types.rst
Normal file
38
docs/user/monster-types.rst
Normal file
@ -0,0 +1,38 @@
|
||||
#############
|
||||
Monster types
|
||||
#############
|
||||
|
||||
MobArena supports any monster available in the `EntityType
|
||||
enum <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html>`__.
|
||||
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.
|
179
docs/user/permissions.rst
Normal file
179
docs/user/permissions.rst
Normal file
@ -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.
|
530
docs/user/setting-up-config-file.rst
Normal file
530
docs/user/setting-up-config-file.rst
Normal file
@ -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. ``<time>`` means the setting must be an amount of
|
||||
time (in seconds or server ticks), always a whole number, and always
|
||||
``0`` or greater. ``<amount>`` is similar to time.
|
||||
|
||||
global-settings
|
||||
---------------
|
||||
|
||||
The ``global-settings`` are few, but important. Note that if
|
||||
``enabled: false``, no arenas can be joined, regardless of their
|
||||
individual ``enabled`` status.
|
||||
|
||||
- ``enabled: [true|false]`` - This determines if MobArena is enabled or
|
||||
not. If set to ``false``, players will not be able to join any arenas
|
||||
at all, regardless of what the arenas' individual statuses are.
|
||||
- ``update-notification: [true|false]`` - If true, MobArena will send a
|
||||
message to ops when they log on if a new version of MobArena is
|
||||
available.
|
||||
- ``allowed-commands: <com1>, <com2>, ...`` - A comma-separated list of
|
||||
the commands that players are allowed to use while in the lobby
|
||||
and/or arena. This is useful if you don't want players to use
|
||||
teleport-commands, flying carpets, kill commands, etc. If you write
|
||||
the command WITH its forward-slash, the entire command and all
|
||||
"sub-commands" will be allowed. For instance, writing ``/kill`` will
|
||||
allow both ``/kill``, ``/kill Sausageman22`` and ``/kill Notch``.
|
||||
Writing the command WITHOUT its forward-slash will allow only that
|
||||
specific command or "sub-command". Writing ``kill`` will thus ONLY
|
||||
allow ``/kill``, but not ``/kill Sausageman22``.
|
||||
- ``prefix: <prefix>`` - The prefix MobArena uses for all of its
|
||||
messages. The default is the classic green ``[MobArena]``, but you
|
||||
can change it to whatever you want. You can override the prefix for
|
||||
specific arenas by using the arena-specific setting with the same
|
||||
name.
|
||||
|
||||
I recommended leaving the update notifications on, and disabling
|
||||
commands like ``/kill`` and ``/tp``.
|
||||
|
||||
classes
|
||||
-------
|
||||
|
||||
The ``classes``-section is slightly more complicated. It is divided into
|
||||
*class-branches*, where each branch denotes the *name of the class*, and
|
||||
each branch has mandatory nodes ``items`` and ``armor``, as well as
|
||||
optional slot-specific armor nodes and optional nodes ``price``,
|
||||
``permissions``, ``lobby-permissions``, ``unbreakable-weapons``, and
|
||||
``unbreakable-armor``.
|
||||
|
||||
**Note:** YAML is picky about how you type your items. Make sure you
|
||||
read the short [[Item and Reward Syntax]]-page and fully understand it
|
||||
before you attempt to modify the config file!
|
||||
|
||||
::
|
||||
|
||||
classes:
|
||||
Archer:
|
||||
items: wood_sword, bow, arrow:128, grilled_pork
|
||||
armor: 298,299,300,301
|
||||
permissions:
|
||||
- EffectiveArrows.use.*
|
||||
- -mobarena.use.leave
|
||||
Tank:
|
||||
items: iron_sword
|
||||
armor: 310,311,312,313
|
||||
offhand: shield
|
||||
Knight:
|
||||
items: '276'
|
||||
armor: iron_helmet, iron_chestplate, iron_leggings, iron_boots
|
||||
Wolf Master:
|
||||
items: stone_sword, grilled_pork, bone:2
|
||||
armor: 298,299,300,301
|
||||
Crusader:
|
||||
items: iron_sword, hay_block:17
|
||||
armor: 302,303,304,305
|
||||
price: $5
|
||||
|
||||
Bring your own items
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
MobArena allows you to just bring your own items into the arena via the
|
||||
implicit 'My Items' class. What this means is that if you just place a
|
||||
sign in the lobby with the text My Class, you'll get the items that you
|
||||
had before joining the arena. Items are still restored on dying in or
|
||||
leaving the arena.
|
||||
|
||||
For a smooth, own-items-only experience, ditch the signs and set the
|
||||
per-arena setting ``default-class`` to ``myitems``.
|
||||
|
||||
Slot-specific armor nodes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you want to use off-hand items, or if you just want to be explicit
|
||||
about which items go where in the armor slots, use the optional
|
||||
slot-specific armor nodes: ``offhand``, ``helmet``, ``chestplate``,
|
||||
``leggings``, ``boots``. In the example above, the **Tank** class gets a
|
||||
shield in its off-hand slot.
|
||||
|
||||
Price
|
||||
~~~~~
|
||||
|
||||
The optional ``price`` node can be used to give classes a per-session
|
||||
price. When a player tries to pick a class that has a price, they will
|
||||
only be able to if they can afford it. The money is withdrawn when the
|
||||
arena starts, i.e. picking different priced classes in succession will
|
||||
not (necessarily) result in empty player wallets. In the example above,
|
||||
the **Crusader** class costs ``$5``.
|
||||
|
||||
Unbreakable weapons/armor
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The optional ``unbreakable-weapons`` and ``unbreakable-armor`` nodes can
|
||||
be used to toggle on or off the unbreakability of class items and armor.
|
||||
The nodes *default to true*, so they are really only necessary if you
|
||||
want to toggle OFF the feature, i.e. if you want items to deteriorate
|
||||
and break! If that's what you want, set the nodes to false.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<pre>
|
||||
classes:
|
||||
FrailTank:
|
||||
items: diamond_sword
|
||||
armor: 310,311,312,313
|
||||
<font color="blue">unbreakable-weapons: false</font>
|
||||
<font color="blue">unbreakable-armor: false</font>
|
||||
</pre>
|
||||
|
||||
Per-class permissions
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Using the optional ``permissions``-node, you can give classes special
|
||||
permissions to customize them even more. Each permission must be listed
|
||||
with a dash (-) in front of it. If you want a class to *not* have a
|
||||
permission, put a dash/minus at the very beginning of the permission
|
||||
node. In the example above, the **Archer** class will be able to use the
|
||||
EffectiveArrows plugin, but won't be able to use ``/ma leave`` (meaning
|
||||
it's impossible to leave the arena without dying).
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<pre>
|
||||
classes:
|
||||
Archer:
|
||||
items: wood_sword, bow, arrow:128, grilled_pork
|
||||
armor: 298,299,300,301
|
||||
<font color="blue">permissions:</font>
|
||||
<font color="blue">- EffectiveArrows.use.*</font>
|
||||
<font color="blue">- -mobarena.use.leave</font>
|
||||
</pre>
|
||||
|
||||
The optional ``lobby-permissions``-node gives players special
|
||||
permissions while they are in the lobby *after they have picked a
|
||||
class*. This feature can be used e.g. in combination with a shop plugin
|
||||
and a base class that perhaps has nothing (maybe except for a few
|
||||
potions).
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<pre>
|
||||
classes:
|
||||
Basic:
|
||||
items: ''
|
||||
armor: ''
|
||||
<font color="blue">lobby-permissions:</font>
|
||||
<font color="blue">- shop.buy</font>
|
||||
</pre>
|
||||
|
||||
Pet classes
|
||||
~~~~~~~~~~~
|
||||
|
||||
For every bone (Material name: ``bone``, data value: ``352``) in a
|
||||
class' items-list (or class chest), one wolf pet will spawn upon arena
|
||||
start. In the example above, every player that picks the **Wolf Master**
|
||||
class will have 2 wolves spawn upon arena start. The wolves are
|
||||
invincible, but deal less damage than normal wolves.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<pre>
|
||||
classes:
|
||||
Wolf Master:
|
||||
items: stone_sword, grilled_pork, <font color="blue">bone:2</font>
|
||||
armor: 298,299,300,301
|
||||
</pre>
|
||||
|
||||
Mounts
|
||||
~~~~~~
|
||||
|
||||
To give a class a horse mount, give it a hay block in the items-list (or
|
||||
place a hay block in the class chest). The item stack amount (in the
|
||||
first encountered stack) determines the variant and barding of the
|
||||
horse. You can use this table to figure out which hay block amount you
|
||||
need for your desired variant and barding:
|
||||
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
| | **None** | **Iron** | **Gold** | **Diamond** |
|
||||
+================+============+============+============+===============+
|
||||
| **Horse** | 1 | 9 | 17 | 25 |
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
| **Donkey** | 2 | - | - | - |
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
| **Mule** | 3 | - | - | - |
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
| **Skeleton** | 4 | - | - | - |
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
| **Zombie** | 5 | - | - | - |
|
||||
+----------------+------------+------------+------------+---------------+
|
||||
|
||||
Note that only normal horses can have barding.
|
||||
|
||||
In the example above, every player that picks the **Crusader** class
|
||||
will have a white horse with gold barding upon arena start. The mounts
|
||||
are invincible.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<pre>
|
||||
classes:
|
||||
Crusader:
|
||||
items: iron_sword, <font color="blue">hay_block:17</font>
|
||||
armor: 302,303,304,305
|
||||
</pre>
|
||||
|
||||
arenas
|
||||
------
|
||||
|
||||
This section is by far the largest, and it is divided into several
|
||||
smaller branches. In the above example, ``default`` denotes the *name*
|
||||
of the default arena. This name can be altered, but it must contain no
|
||||
spaces (use underscores instead). The arena name is significant when a
|
||||
server has multiple arenas and no Master Lobby (will be featured later).
|
||||
Let's go over the different branches:
|
||||
|
||||
settings
|
||||
~~~~~~~~
|
||||
|
||||
The settings-branch is quite extensive, and besides the ``world``-node,
|
||||
it is basically just a bunch of toggles (on/off, true/false), though a
|
||||
few are number-based.
|
||||
|
||||
- ``prefix: <prefix>`` - An arena-specific prefix to use for
|
||||
messages/announcements in this arena only. The default is the empty
|
||||
string (``''``), which means the ``global-settings`` prefix will be
|
||||
used.
|
||||
- ``world: <name>`` - The name of the world the arena resides in.
|
||||
- ``enabled: [true|false]`` - If false, players cannot join the arena.
|
||||
- ``protect: [true|false]`` - If false, the arena will not be protected
|
||||
from explosions and players breaking the blocks.
|
||||
- ``entry-fee: [$<amount>|<item>:<amount>]`` - Follows the exact same
|
||||
notation as the class items and rewards (read the [[Item and Reward
|
||||
Syntax]]-page). ``$20`` will subtract 20 of whatever currency you use
|
||||
from the players upon joining. ``$5, stick:2`` will require the
|
||||
player to have 5 currency units and 2 sticks to join the arena. The
|
||||
entry-fee will be refunded if the player leaves before the arena
|
||||
starts.
|
||||
- ``default-class: <class>`` - If non-empty, this class is
|
||||
automatically assigned to players when they join the arena. The class
|
||||
name must be all lowercase and with no spaces.
|
||||
- ``clear-wave-before-next: [true|false]`` - If true, no monsters will
|
||||
spawn before all monsters of the previous wave have been killed.
|
||||
- ``clear-boss-before-next: [true|false]`` - If true, no new waves will
|
||||
spawn before the current boss (if any) is dead.
|
||||
- ``clear-wave-before-boss: [true|false]`` - If true, a boss wave will
|
||||
not spawn until all previous monsters have been killed.
|
||||
- ``auto-equip-armor: [true|false]`` - If true, armor pieces will
|
||||
automatically be equipped upon class selection. Note that this does
|
||||
not work if a class has more than 1 of an armor piece type.
|
||||
- ``soft-restore: [true|false]`` - If true, all destroyed blocks will
|
||||
be saved in a "repair list", which will be used to restore blocks at
|
||||
arena end. No data is saved to the harddrive. Note that this setting,
|
||||
if true, ignores the ``protect`` flag.
|
||||
- ``soft-restore-drops: [true|false]`` - If true, blocks destroyed by
|
||||
players will drop as items like they normally do (using pickaxes,
|
||||
spades, etc.). Note that this makes it very easy for classes with
|
||||
pickaxes to "mine the arena" and build forts.
|
||||
- ``require-empty-inv-join: [true|false]`` - If false, players'
|
||||
inventories will be saved upon joining, and restored upon
|
||||
death/leaving.
|
||||
- ``require-empty-inv-spec: [true|false]`` - If false, players can
|
||||
spectate the arena without having to empty their inventories.
|
||||
- ``hellhounds: [true|false]`` - If true, all pet wolves in the arena
|
||||
will be in flames! This has no actual function, and is purely for the
|
||||
cool-factor. Also useful for distinguishing enemy wolves and pet
|
||||
wolves.
|
||||
- ``pvp-enabled: [true|false]`` - If true, players can damage each
|
||||
other in the arena.
|
||||
- ``monster-infight: [true|false]`` - If false, monsters will no longer
|
||||
damage each other.
|
||||
- ``allow-teleporting: [true|false]`` - If false, all warping to and
|
||||
from the arena region is blocked. Useful for preventing players from
|
||||
summoning other players into the arena for help.
|
||||
- ``spectate-on-death: [true|false]`` - If false, players will not get
|
||||
warped to the spectator area, but instead be "kicked" from the arena
|
||||
(essentially a forced /ma leave).
|
||||
- ``auto-respawn: [true|false]`` - If false, players will be greeted
|
||||
with the typical death screen upon dying in the arena, and will have
|
||||
to click the respawn button to respawn. With this setting at false,
|
||||
players will actually die in the arena, meaning plugins like Heroes
|
||||
and mcMMO will properly trigger their resetting of internal data upon
|
||||
respawn.
|
||||
- ``share-items-in-arena: [true|false]`` - If false, players will not
|
||||
be able to drop items in the arena.
|
||||
- ``min-players: <amount>`` - Gives a lower limit on how many players
|
||||
are required to start the arena. The default of ``0`` is the same as
|
||||
``1``, which means 1 or more players may start the arena. Note that
|
||||
this feature is incompatible with ``auto-start-timer`` and
|
||||
``start-delay-timer``!
|
||||
- ``max-players: <amount>`` - Gives an upper limit on how many players
|
||||
may join the arena. The default of ``0`` means no limit.
|
||||
- ``max-join-distance: <distance>`` - The maximum distance (in blocks)
|
||||
from which players can join or spectate the arena. If 0 (default),
|
||||
there is no limit, and players can join from any world. Note that the
|
||||
distance is calculated from every corner of the arena region, and
|
||||
that players not in the arena world won't be able to join or
|
||||
spectate.
|
||||
- ``first-wave-delay: <time>`` - The time (in seconds) before the first
|
||||
wave of monsters upon arena start.
|
||||
- ``wave-interval: <time>`` - The time (in seconds) between each new
|
||||
wave of monsters. If clear-wave-before-next: true, this setting will
|
||||
be ignored.
|
||||
- ``final-wave: <number>`` - The number of the final wave before the
|
||||
arena is force ended. This is useful if you want to set a cap on how
|
||||
many waves an arena will have.
|
||||
- ``monster-limit: <amount>`` - The maximum amount of monsters MobArena
|
||||
is allowed to spawn for this arena. The next wave, if any, will not
|
||||
spawn until there is room for more monsters.
|
||||
- ``monster-exp: [true|false]`` - If true, monsters will drop
|
||||
experience orbs. This is useful if you wish to give players the
|
||||
ability to spend the gathered experience on enchants or something
|
||||
else (using different plugins) during the session.
|
||||
- ``keep-exp: [true|false]`` - If true, players will keep the
|
||||
experience they gather in the arenas after death. This is useful if
|
||||
you want to allow players to level up or gather experience in the
|
||||
arenas. NOTE: If using ``display-waves-as-level`` or
|
||||
``display-timer-as-level``, set ``keep-exp`` to false.
|
||||
- ``food-regen: [true|false]`` - If true, a full food bar will cause
|
||||
players to regenerate health while in the arena. Note that this
|
||||
potentially makes tank-like classes extremely overpowered, since
|
||||
diamond armor (by default) coupled with a full food bar will make a
|
||||
player very hard to kill.
|
||||
- ``lock-food-level: [true|false]`` - If true, the food bar will be
|
||||
locked for all players in the arena, meaning they will not end up
|
||||
starving, and they will be able to sprint around as they please.
|
||||
- ``player-time-in-arena: <time of day>`` - When set to anything but
|
||||
world, this setting will freeze the apparent world time for players
|
||||
in the arena to whatever value you set. This is useful for making
|
||||
time-of-day themed arenas (e.g. constant night time for a cemetery,
|
||||
broad daylight for a pirate ship). Valid values are: dawn, sunrise,
|
||||
morning, midday, noon, day, afternoon, evening, sunset, dusk, night,
|
||||
midnight.
|
||||
- ``auto-ignite-tnt: [true|false]`` - If true, TNT will be
|
||||
automatically ignited when placed. This is useful for preventing
|
||||
Oddjob-like classes from forting.
|
||||
- ``auto-start-timer: <time>`` - The time (in seconds) before the arena
|
||||
will be force started after the first player has joined the lobby
|
||||
(the default of 0 means deactivated or infinite time). Non-ready
|
||||
players will be removed from the lobby. This setting is useful to
|
||||
prevent ill-minded players from delaying or preventing other players
|
||||
from starting the arena. Note that this feature is incompatible with
|
||||
``min-players``!
|
||||
- ``start-delay-timer: <time>`` - The time (in seconds) before the
|
||||
arena can be started after the first player has joined the lobby.
|
||||
This setting is useful if you want to give your players a fixed
|
||||
window of time to join the arena after the first player has joined,
|
||||
so they can't just start it off right away. Note that this feature is
|
||||
incompatible with ``min-players``!
|
||||
- ``display-waves-as-level: [true|false]`` - When set to true, the
|
||||
players' level counter (above the experience bar) will be used to
|
||||
display the current wave number. If the wave announcements in the
|
||||
announcements-file are silenced, this can be used to make a much less
|
||||
"spammy" MobArena experience. NOTE: Do not use this if ``keep-exp``
|
||||
is set to true!
|
||||
- ``display-timer-as-level: [true|false]`` - When set to true, the
|
||||
players' level counter (above the experience bar) will be used to
|
||||
display the auto-start timer in the lobby. NOTE: Do not use this if
|
||||
``keep-exp`` is set to true!
|
||||
- ``auto-ready: [true|false]`` - When set to true, players are
|
||||
automatically flagged as ready when they pick a class. Useful for
|
||||
arenas with many players where hitting an iron block becomes
|
||||
difficult.
|
||||
- ``use-scoreboards: [true|false]`` - Whether to use scoreboards in
|
||||
MobArena or not.
|
||||
- ``isolated-chat: [true|false]`` - When set to true, all chat messages
|
||||
sent by arena players will be seen only by other arena players in the
|
||||
same arena. The arena players will still be able to see chat messages
|
||||
from other players on the server who aren't in an arena.
|
||||
- ``global-end-announce: [true|false]`` - When set to true, MobArena
|
||||
will announce the ``arena-end-global`` message (see
|
||||
[[Announcements]]) to all players on the server when an arena ends.
|
||||
- ``global-join-announce: [true|false]`` - When set to true, MobArena
|
||||
will announce the ``arena-join-global`` message (see
|
||||
[[Announcements]]) to all players on the server when the first player
|
||||
joins an arena.
|
||||
|
||||
waves
|
||||
~~~~~
|
||||
|
||||
Please go to [[setting up the waves]] for more information.
|
||||
|
||||
rewards
|
||||
~~~~~~~
|
||||
|
||||
The rewards-section denotes which rewards the arena players can win in
|
||||
the arena. It uses the exact same item system as the classes-section
|
||||
does, so nothing new there. You can also specify monetary rewards if you
|
||||
use a major economy plugin (iConomy, BOSEconomy, Essentials Eco) in the
|
||||
notation ``$<amount>``.
|
||||
|
||||
**Note:** YAML is picky about how you type your items. Make sure you
|
||||
read the short [[Item and Reward Syntax]]-page and fully understand it
|
||||
before you attempt to modify the config file!
|
||||
|
||||
The waves-branch is broken into ``every``- and ``after``-branches. The
|
||||
``every``-branch denotes rewards that the players can receive *every* x
|
||||
waves (repeated). The ``after``-branch denotes rewards that the player
|
||||
can receive *after* wave x (only once) has started. Note that **only one
|
||||
reward** is picked at random from the list.
|
||||
|
||||
In the following example, players will receive either four arrows or a
|
||||
gold bar every 3 waves (3, 6, 9, 12, etc.), and a diamond every 10 waves
|
||||
(10, 20, 30, etc.), as well as an iron tool on wave 7 (only on wave 7),
|
||||
a diamond sword on wave 19 (only on wave 19), and 200 currency units on
|
||||
wave 20:
|
||||
|
||||
::
|
||||
|
||||
rewards:
|
||||
waves:
|
||||
every:
|
||||
'3': arrow:4, gold_ingot
|
||||
'10': diamond
|
||||
after:
|
||||
'7': iron_spade, iron_hoe, iron_axe, iron_pickaxe
|
||||
'19': diamond_sword
|
||||
'20': $200
|
||||
|
||||
**Note:** The wave numbers **must be enclosed by apostrophes** (e.g.
|
||||
``'7':``, not ``7:``), or YAML will throw errors. If you aren't sure how
|
||||
to do it, just copy one of the other lines and change the wave number
|
||||
and the items.
|
||||
|
||||
coords
|
||||
~~~~~~
|
||||
|
||||
The coords-section does not exist when MobArena first generates the
|
||||
config-file. This is because the coordinates need to be set by the user
|
||||
*in-game*. See the in-game section for more details on how to set
|
||||
everything up. The coords-section consists of five key points, and an
|
||||
arbitrary amount of spawnpoints:
|
||||
|
||||
- ``p1`` and ``p2`` - These two points should span the entire arena
|
||||
region (including spectator areas and the lobby associated with the
|
||||
arena, if possible).
|
||||
- ``l1`` and ``l2`` - [OPTIONAL] If the lobby can't properly reside
|
||||
within the arena region for some reason, these two points should span
|
||||
the lobby region.
|
||||
- ``arena`` - This warp is where the players will be teleported upon
|
||||
arena start.
|
||||
- ``lobby`` - Where the players will be teleported upon joining the
|
||||
arena.
|
||||
- ``spectator`` - Where the players will be teleported upon death or
|
||||
spectating.
|
||||
- ``spawnpoints`` - A list of points where monsters can spawn from.
|
||||
|
||||
Note that editing these points manually can have some very unhappy
|
||||
consequences. Always edit these points from within Minecraft to ensure
|
||||
that they are generated properly.
|
493
docs/user/setting-up-waves.rst
Normal file
493
docs/user/setting-up-waves.rst
Normal file
@ -0,0 +1,493 @@
|
||||
################
|
||||
Setting up waves
|
||||
################
|
||||
|
||||
**On this page:** \* `About
|
||||
Modules <./Setting-up-the-waves#wiki-about-modules>`__ \* `Wave
|
||||
Branches <./Setting-up-the-waves#wiki-wave-branches>`__ \* `Common
|
||||
Nodes <./Setting-up-the-waves#wiki-common-nodes>`__ \*
|
||||
```recurrent`` <./Setting-up-the-waves#wiki-recurrent-waves>`__ \*
|
||||
```single`` <./Setting-up-the-waves#wiki-single-waves>`__ \* `Wave
|
||||
Types <./Setting-up-the-waves#wiki-wave-types>`__ \*
|
||||
```default`` <./Setting-up-the-waves#wiki-default-waves>`__ \*
|
||||
```special`` <./Setting-up-the-waves#wiki-special-waves>`__ \*
|
||||
```swarm`` <./Setting-up-the-waves#wiki-swarm-waves>`__ \*
|
||||
```supply`` <./Setting-up-the-waves#wiki-supply-waves>`__ \*
|
||||
```upgrade`` <./Setting-up-the-waves#wiki-upgrade-waves>`__ \*
|
||||
```boss`` <./Setting-up-the-waves#wiki-boss-waves>`__ \* `A Sample
|
||||
Setup <./Setting-up-the-waves#wiki-sample-config-file-setup>`__
|
||||
|
||||
**Note: If you are impatient, go to the bottom of this page for an
|
||||
example config-file setup to see what the waves could look like. Modify
|
||||
them as you please, but make sure to read this page before asking any
|
||||
questions!**
|
||||
|
||||
Make sure to check out `Agnate's MobArena Bosses and Waves
|
||||
Thread <http://forums.bukkit.org/threads/mobarena-boss-and-wave-thread.31797/>`__
|
||||
if you need inspiration for adding some cool bosses to your arenas!
|
||||
|
||||
About Modules
|
||||
-------------
|
||||
|
||||
The new MobArena waves-system is extremely modular, meaning every time
|
||||
you plug in a new wave, you only have to provide the nodes required by
|
||||
the specific modules you are using. The modules can be broken into *wave
|
||||
branches* and *wave types*. The structure of the waves-section in
|
||||
config-file is the following:
|
||||
|
||||
::
|
||||
|
||||
waves:
|
||||
recurrent: <-- Wave branch
|
||||
<wave name>:
|
||||
type: <wave type> <-- Wave type
|
||||
frequency: #
|
||||
priority: #
|
||||
single: <-- Wave branch
|
||||
<wave name>:
|
||||
type: <wave type> <-- Wave type
|
||||
wave: #
|
||||
|
||||
Wave Branches
|
||||
-------------
|
||||
|
||||
The waves are split into two branches, ``recurrent`` and ``single``.
|
||||
*Recurrent waves* (may) occur more than once (as in, they repeat), given
|
||||
a frequency (how often they occur) and a priority (how "important" they
|
||||
are, i.e. which wave should spawn if two recurrent waves clash). *Single
|
||||
waves* occur just once, on the given wave (and always occur over
|
||||
recurrent waves, should they clash).
|
||||
|
||||
Common Nodes
|
||||
~~~~~~~~~~~~
|
||||
|
||||
As you can see, the two branches have one thing in common, the
|
||||
``type``-node. Other than that, their other nodes differ. However, there
|
||||
are two additional nodes that can be used regardless of branch and type
|
||||
(doesn't work for boss waves, though):
|
||||
|
||||
``amount-multiplier: <decimal value>`` (optional) minimum value of 0.1,
|
||||
this multiplier helps determine how many monsters spawn per wave
|
||||
(minimum 1). If 8 mobs are supposed to spawn, and the value is ``0.5``,
|
||||
only 4 mobs will spawn. If the value is ``3``, 24 will spawn.
|
||||
|
||||
``health-multiplier: <decimal value>`` (optional) minimum value of 0.1,
|
||||
this multiplier helps determine the health for each monster in a wave.
|
||||
If a zombie spawns with the default of 20 health points and the value is
|
||||
``0.5``, the zombie will have 10 health points. If the value is ``4``,
|
||||
it will be 80 health points.
|
||||
|
||||
These two common nodes can be used to greatly customize the difficulty
|
||||
of the monsters in each wave. If you want more monsters, just set the
|
||||
amount-multiplier higher than 1, and maybe adjust the health with the
|
||||
health-multiplier accordingly. If you want the monsters to be tougher to
|
||||
kill, just up the health-multiplier.
|
||||
|
||||
An additional node can be used to help determine where enemies will
|
||||
spawn:
|
||||
|
||||
``spawnpoints: <semi-colon separated list of spawnpoints>``
|
||||
|
||||
For example, we can make a swarm wave spawn monsters only on spawns
|
||||
``5,53,198``, ``-16,54,185``, and ``-7,53,179`` if players are in range:
|
||||
|
||||
::
|
||||
|
||||
swarm3:
|
||||
type: swarm
|
||||
wave: 11
|
||||
monster: zombie_pigman
|
||||
spawnpoints: 5,53,198; -16,54,185; -7,53,179
|
||||
|
||||
Note that these spawnpoints must exist in the ``spawnpoints``-list of
|
||||
the ``coords``-section to work.
|
||||
|
||||
Recurrent Waves
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
``type: [default|special|swarm|supply|upgrade|boss]`` (required)
|
||||
determines the wave type. Read the **Wave types** section further down
|
||||
for more details.
|
||||
|
||||
``frequency: #`` (required) determines how often the wave will/can
|
||||
spawn. With a frequency of 1, the wave can potentially spawn on every
|
||||
single wave number. The implicit default waves in MobArena have a
|
||||
frequency of 1, and the implicit special waves have a frequency of 4,
|
||||
which means the default waves (can) spawn every wave, and the special
|
||||
waves (can) spawn every 4th wave.
|
||||
|
||||
``priority: #`` (required) determines how "important" the wave is. If
|
||||
two recurrent waves clash, the wave with the highest priority will
|
||||
spawn. The implicit default waves in MobArena have a priority of 1, and
|
||||
the implicit special waves have a priority of 2, which means if the
|
||||
default and special waves clash, the special waves will spawn because
|
||||
their priority is higher.
|
||||
|
||||
``wave: #`` (optional) determines the first wave number on which this
|
||||
wave can/will spawn. This is useful for offsetting waves with similar
|
||||
frequencies. Note that if no wave is specified, it will default to the
|
||||
value of the (required) frequency-node. The implicit default waves in
|
||||
MobArena have wave value of 1, and the implicit special waves have a
|
||||
wave value of 4 (same as the frequency), which means the default waves
|
||||
may begin spawning from wave 1, and the special waves may begin spawning
|
||||
from wave 4.
|
||||
|
||||
Single Waves
|
||||
~~~~~~~~~~~~
|
||||
|
||||
``type: [default|special|swarm|supply|upgrade|boss]`` (required)
|
||||
determines the wave type. Read the **Wave types** section further down
|
||||
for more details.
|
||||
|
||||
``wave: #`` (required) determines the wave on which this wave *will*
|
||||
spawn. No matter what priority a recurrent wave have, if it clashes with
|
||||
a single wave, the single wave will always spawn instead of the
|
||||
recurrent waves. Single waves are good for extraordinary waves like
|
||||
"swarm" waves, "boss" waves or even normal waves with specific monster
|
||||
types, for instance.
|
||||
|
||||
Wave Types
|
||||
----------
|
||||
|
||||
All MobArena waves must specify a *wave type*, which must be either
|
||||
``default``, ``special``, ``swarm``, ``supply``, ``upgrade`` or
|
||||
``boss``. These different wave type modules introduce some new required
|
||||
and optional nodes. Note that no matter what the wave type is, any wave
|
||||
*must* adhere to the requirements of the wave branch (read above).
|
||||
|
||||
Default Waves
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Default waves are waves that spawn an amount of monsters picked
|
||||
semi-randomly from an optional list of monsters. The amount of monsters
|
||||
grow at a configurable (but optional) rate. If no growth or monster-list
|
||||
is specified, default waves will consist of 5 different monster types
|
||||
(zombie, skeleton, spider, creeper, wolf), all equally likely to spawn,
|
||||
spawned at the "old" growth rate (player count + wave number). Nodes:
|
||||
|
||||
``growth: [old|slow|medium|fast|psycho]`` (optional) determines how fast
|
||||
the monster count grows with every wave. ``old`` means (player count +
|
||||
wave number), but the other four use a mathematical function to
|
||||
determine the monster count, also based on player count and wave number.
|
||||
See [[Formulas]] for more info.
|
||||
|
||||
``monsters: <list of <monster>: <probability>>`` (optional) determines
|
||||
[[monster types]], and their individual probabilities of spawning on
|
||||
each wave. Note that the probabilities are just that, probabilities.
|
||||
They do not specify exact amounts, but only chance of spawning. The
|
||||
following sample will statistically spawn twice as many zombies as
|
||||
skeletons:
|
||||
|
||||
::
|
||||
|
||||
monsters:
|
||||
zombies: 10
|
||||
skeletons: 5
|
||||
|
||||
``fixed: [true|false]`` (optional) the probability values in the
|
||||
monsters list becomes amount values instead, such that the above wave
|
||||
will spawn exactly 10 zombies and 5 skeletons, regardless of player
|
||||
count and wave number.
|
||||
|
||||
Special Waves
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Special waves are waves that spawn *one type* of monster, and always a
|
||||
fixed amount. Unlike with *default waves*, the (optional) monster list
|
||||
with probabilities determines which monster out of the entire list
|
||||
should spawn. The monsters-node's notation is identical to that of
|
||||
*default waves*.
|
||||
|
||||
``monsters: <list of <monster>: <probability>>`` (optional) determines
|
||||
[[monster types]], and their probabilities of spawning on each wave. The
|
||||
following sample will statistically spawn powered-creepers twice as
|
||||
often as slimes:
|
||||
|
||||
::
|
||||
|
||||
monsters:
|
||||
powered-creepers: 4
|
||||
slimes: 2
|
||||
|
||||
Swarm Waves
|
||||
~~~~~~~~~~~
|
||||
|
||||
Like *special waves*, swarm waves spawn just *one type* of monster, but
|
||||
in a configurable (but optional) amount. The swarm wave monsters only
|
||||
have *1 health point*, meaning they will die with just one blow from
|
||||
anything. Their numbers are vast compared to default and special waves,
|
||||
however, so they may be a bit hard on some servers. Use with caution!
|
||||
|
||||
``monster: <monster>`` (required) which [[monster types]] the swarm
|
||||
consists of. Note that this is different from special waves, in that
|
||||
only one type is specified, and no probability value.
|
||||
|
||||
``amount: [low|medium|high|psycho]`` (optional) how many monsters should
|
||||
spawn. Defaults to low (which is still a lot). See [[Formulas]] for more
|
||||
info.
|
||||
|
||||
Supply Waves
|
||||
~~~~~~~~~~~~
|
||||
|
||||
These waves spawn one monster per player, and will drop a random item
|
||||
from a customized drop list (same notation as the class items). The
|
||||
monster list notation is identical to that of default and special waves.
|
||||
|
||||
::
|
||||
|
||||
drops: grilled_pork, cooked_chicken, cooked_beef, cooked_fish:2
|
||||
|
||||
Upgrade Waves
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
These waves don't spawn any monsters, but will give or upgrade items.
|
||||
The class names are optional (you don't have to give items to all
|
||||
classes), and it is possible to use the ``all`` identifier to specify
|
||||
items that will be given to all players regardless of class. The
|
||||
``give-all-items`` flag determines if all items in the list should be
|
||||
given, or just a random item off the list (like with rewards and supply
|
||||
waves).
|
||||
|
||||
**Legacy setup**: In the following example, all players get a healing
|
||||
potion, and on top of that, all Archers get 64 arrows, and all Oddjobs
|
||||
get either 2 TNT or a Netherrack:
|
||||
|
||||
::
|
||||
|
||||
upgrades:
|
||||
all: potion:8197:1
|
||||
Archer: arrow:64
|
||||
Oddjob: tnt:2, netherrack
|
||||
give-all-items: false
|
||||
|
||||
**Advanced setup**: Since MobArena v0.95, the Upgrade Waves can be set
|
||||
up to upgrade/replace certain weapons and armor, as well as add/remove
|
||||
permissions. The setup follows the setup of the classes-section. In the
|
||||
following example, the Knight class gets its diamond sword enchanted and
|
||||
its iron chestplate replaced with a diamond chestplate. The Archer just
|
||||
gets some more arrows (legacy setup) while the Wizard class gets the
|
||||
permission to cast the Forcepush spell from MagicSpells:
|
||||
|
||||
::
|
||||
|
||||
classes:
|
||||
Knight:
|
||||
armor: iron_helmet, iron_chestplate, iron_leggings, iron_boots
|
||||
items: diamond_sword
|
||||
|
||||
...
|
||||
|
||||
arenas:
|
||||
...
|
||||
waves:
|
||||
...
|
||||
upgrades:
|
||||
Archer: arrow:64
|
||||
Knight:
|
||||
armor: diamond_chestplate
|
||||
items: diamond_sword 16:2
|
||||
Wizard:
|
||||
permissions:
|
||||
- magicspells.cast.forcepush
|
||||
give-all-items: true
|
||||
|
||||
Explanation: Items listed in the ``armor`` node will be considered
|
||||
armor, and (if valid) will replace any item currently in the armor slots
|
||||
of the players. Items in the ``items`` node will be checked if they are
|
||||
weapons or not; if they are weapons, then MobArena will search through
|
||||
the players' inventories for weapons with the same ID, and then replace
|
||||
the first weapon that matches it (automatic upgrades). If no weapon is
|
||||
found, it will default to a generic item, which will just be added to
|
||||
the inventory.
|
||||
|
||||
Boss Waves
|
||||
~~~~~~~~~~
|
||||
|
||||
Boss waves consist of *one monster* with a configurable (but optional)
|
||||
amount of health, and a configurable (but optional) list of special
|
||||
abilities. The health of a boss monster is significantly higher than
|
||||
that of normal monsters, and thus take much longer to kill. The special
|
||||
abilities help increase the difficulty (and fun!) of a boss wave.
|
||||
|
||||
``monster: <monster>`` (required) the boss [[monster types]]. Note that
|
||||
only one monster will spawn.
|
||||
|
||||
``name: <name>`` (optional) the name of the boss. Shows the given name
|
||||
in a name tag above the boss' head.
|
||||
|
||||
``health: <amount>|[verylow|low|medium|high|veryhigh|psycho]``
|
||||
(optional) how much health the boss has. Can be either a flat value,
|
||||
e.g. 40 or 800, or one of the scaling values. Defaults to the scaling
|
||||
value medium. See [[Formulas]] for more info about the scaling values.
|
||||
|
||||
``reward: <item>`` (optional) a reward for getting the killing blow on
|
||||
the boss. This reward will only be given to one player (the killer, if
|
||||
any).
|
||||
|
||||
``drops: <item list>`` (optional) a comma-separated list of items
|
||||
dropped by the boss when killed. The boss will drop exactly the items
|
||||
listed. This could be used to have the boss drop a "key" to advance in
|
||||
the arena, or to gain access to a shed full of weapon chests or
|
||||
something wonderful like that. The item syntax is the same as the one
|
||||
for Supply Waves.
|
||||
|
||||
``potions: <potion list>`` (optional) a comma-separated list of potion
|
||||
effects that will be applied to the boss when it spawns. Use this to
|
||||
slow down or speed up bosses that don't move at quite the speed you
|
||||
want, or perhaps to give a boss the wither effect to limit the amount of
|
||||
time it will stay alive. The potion syntax is
|
||||
``<effect>:<amplifier>:<seconds>``. The amplifier and duration are
|
||||
optional, and will default to 0 (level 1) and pseudo-infinity,
|
||||
respectively. Note that ``slow``, ``slow:0``, and ``slow:0:600`` are
|
||||
identical, except the last one will only last 10 minutes (600 seconds).
|
||||
Check the sample config-file at the bottom for more examples.
|
||||
|
||||
``abilities: <comma-separated list of boss abilities>`` (optional)
|
||||
determines which (if any) boss abilities this boss has. The boss can
|
||||
have several abilities; just separate each ability with a comma (e.g.
|
||||
``arrows, fire-aura, throw-target``). Note that the abilities happen in
|
||||
a cycle every few seconds, so the more abilities, the longer it takes
|
||||
before each ability is used again. Here is an overview of the different
|
||||
abilities bosses can have:
|
||||
|
||||
::
|
||||
|
||||
NAME DESCRIPTION
|
||||
arrows Shoots arrows
|
||||
fireballs Hurls fireballs
|
||||
fire-aura Burns all nearby (5 blocks radius) players
|
||||
lightning-aura Strikes lightning 4 places around itself (3-block radius)
|
||||
living-bomb A random player is set on fire, and explodes after 3 seconds
|
||||
obsidian-bomb Spawns an Obsidian block which explodes after 4 seconds
|
||||
chain-lightning Lightning strikes the target and jumps to a nearby player
|
||||
disorient-target Spins the target around 45-315 degrees
|
||||
disorient-nearby Spins all nearby (5 blocks radius) players
|
||||
disorient-distant Spins all distant (8+ blocks) players
|
||||
root-target Locks the target in place for a couple of seconds
|
||||
warp-to-player Picks a random player in the arena to warp to
|
||||
shuffle-positions Swaps everyone's (including the boss) positions around
|
||||
flood Places a water block on a random player's location
|
||||
throw-target Throws the target backwards (if in distance)
|
||||
throw-nearby Throws all nearby (5 blocks radius) players
|
||||
throw-distant Throws all distant (8+ blocks) players
|
||||
pull-target Pulls the target towards the boss' location
|
||||
pull-nearby Pulls all nearby (5 blocks radius) players towards the boss' location
|
||||
pull-distant Pulls all distant (8+ blocks) players towards the boss' location
|
||||
fetch-target Warps the target to the boss' location
|
||||
fetch-nearby Warps all nearby (5 blocks radius) players to the boss' location
|
||||
fetch-distant Warps all distant (8+ blocks) players to the boss' location
|
||||
|
||||
``ability-announce: [true|false]`` (optional) should boss abilities be
|
||||
announced to arena players? Defaults to true.
|
||||
|
||||
``ability-interval: <seconds>`` (optional) time between each ability.
|
||||
Defaults to 3.
|
||||
|
||||
Sample config-file setup
|
||||
------------------------
|
||||
|
||||
If you want to try a sample setup, here's one that you can use. Simply
|
||||
copy this block of text, and paste it into your own config-file,
|
||||
replacing the waves-section.
|
||||
|
||||
::
|
||||
|
||||
waves:
|
||||
recurrent:
|
||||
def1:
|
||||
type: default
|
||||
priority: 1
|
||||
frequency: 1
|
||||
monsters:
|
||||
zombies: 10
|
||||
skeletons: 4
|
||||
exploding_sheep: 5
|
||||
def2:
|
||||
type: default
|
||||
priority: 2
|
||||
frequency: 1
|
||||
wave: 5
|
||||
monsters:
|
||||
zombies: 10
|
||||
skeletons: 6
|
||||
creepers: 4
|
||||
spec1:
|
||||
type: special
|
||||
priority: 5
|
||||
frequency: 4
|
||||
wave: 4
|
||||
monsters:
|
||||
powered_creepers: 10
|
||||
angry_wolves: 10
|
||||
zombie_pigmen: 10
|
||||
upgrade1:
|
||||
type: upgrade
|
||||
priority: 7
|
||||
frequency: 10
|
||||
wave: 10
|
||||
upgrades:
|
||||
all: potion:8197:2
|
||||
Archer: arrow:64
|
||||
Oddjob: tnt:2, netherrack
|
||||
give-all-items: true
|
||||
single:
|
||||
swarm1:
|
||||
type: swarm
|
||||
wave: 7
|
||||
monster: slimes
|
||||
amount: medium
|
||||
boss1:
|
||||
type: boss
|
||||
wave: 9
|
||||
monster: spider
|
||||
health: medium
|
||||
abilities: fire-aura, disorient-target, fireballs, throw-nearby
|
||||
potions: speed:3:20, wither, increase_damage:1
|
||||
ability-interval: 5
|
||||
boss2:
|
||||
type: boss
|
||||
wave: 13
|
||||
monster: zombie_pigman
|
||||
health: high
|
||||
abilities: root-target, arrows, fetch-distant, fire-aura
|
||||
drops: lever, stone_button
|
||||
upgrade2:
|
||||
type: upgrade
|
||||
wave: 14
|
||||
upgrades:
|
||||
all: potion:8197:2
|
||||
Knight:
|
||||
armor: diamond_helmet
|
||||
items: diamond_sword 16:2;19:1
|
||||
Tank:
|
||||
items: iron_sword 19:3
|
||||
Oddjob:
|
||||
armor: iron_chestplate, iron_leggings
|
||||
Wizard:
|
||||
permissions:
|
||||
- magicspells.cast.ChainLightning
|
||||
give-all-items: true
|
||||
boss3:
|
||||
type: boss
|
||||
wave: 16
|
||||
monster: wolf
|
||||
health: psycho
|
||||
abilities: warp-to-player, fire-aura, throw-nearby, fireballs, fetch-target, arrows
|
||||
potions: slow:1
|
||||
ability-interval: 1
|
||||
reward: diamond_chestplate
|
||||
supply1:
|
||||
type: supply
|
||||
wave: 19
|
||||
monsters:
|
||||
cows: 10
|
||||
pigs: 5
|
||||
drops: grilled_pork, cooked_chicken, cooked_beef, cooked_fish:2
|
||||
boss4:
|
||||
type: boss
|
||||
wave: 20
|
||||
monster: blaze
|
||||
health: low
|
||||
abilities: fire-aura, throw-nearby
|
||||
potions: speed
|
||||
reward: diamond_helmet
|
137
docs/user/using-mobarena.rst
Normal file
137
docs/user/using-mobarena.rst
Normal file
@ -0,0 +1,137 @@
|
||||
##############
|
||||
Using MobArena
|
||||
##############
|
||||
|
||||
**On this page:** \* `Overview <#overview>`__ \* `Joining <#joining>`__
|
||||
\* `Getting a list of arenas <#getting-a-list-of-arenas>`__ \* `Picking
|
||||
a class <#the-class-command>`__ \* `Finding out who isn't
|
||||
ready <#finding-out-who-isnt-ready>`__ \* `Leaving <#leaving>`__ \*
|
||||
`Spectating <#spectating>`__ \* `A note on
|
||||
inventories <#a-note-on-inventories>`__
|
||||
|
||||
Overview
|
||||
~~~~~~~~
|
||||
|
||||
This page briefly describes the usage-commands of MobArena. Make sure to
|
||||
check out the [[MobArena Commands]] page for a list of all the commands.
|
||||
Remember that typing ``/ma help`` will get you a list of all available
|
||||
commands in-game, along with a (very) brief description of what the
|
||||
command does.
|
||||
|
||||
The commands covered on this page pertain to the usage-commands only,
|
||||
i.e. the commands that the players will use to interact with MobArena.
|
||||
The most basic commands are:
|
||||
|
||||
- ``/ma join`` - for `joining <#joining>`__ arenas to start playing
|
||||
- ``/ma leave`` - for `leaving <#leaving>`__ lobbies or arenas
|
||||
- ``/ma spec`` - for `spectating <#spectating>`__ arenas in progress
|
||||
- ``/ma arenas`` - for getting a `list of
|
||||
arenas <#getting-a-list-of-arenas>`__
|
||||
|
||||
Additionally, there are a few commands that might prove useful:
|
||||
|
||||
- ``/ma class`` - for `picking classes <#the-class-command>`__ in the
|
||||
lobby instead of punching signs
|
||||
- ``/ma notready`` - for finding out `who isn't ready
|
||||
yet <#finding-out-who-isnt-ready>`__
|
||||
|
||||
Joining
|
||||
~~~~~~~
|
||||
|
||||
To join an arena, use the ``/ma join`` command. If you have more than
|
||||
one arena, you will also need to specify an arena name. Let's say we
|
||||
have arenas ``cave`` and ``ship``. To join the Ship arena, simply type
|
||||
``/ma join ship``.
|
||||
|
||||
Upon joining, you will be taken to the lobby of the given arena. In the
|
||||
lobby, you will have to pick a class, which is traditionally done by
|
||||
punching a sign with a class name on it. You can also `use a
|
||||
command <#the-class-command>`__ directly to manually pick a class if you
|
||||
know its name, or indirectly via buttons powering command blocks, or
|
||||
perhaps something more complex (like NPCs).
|
||||
|
||||
Once you've picked a class, you will need to ready up, which is
|
||||
traditionally done by punching an iron block. However, there is also a
|
||||
per-arena config-file setting that automatically flags you as ready once
|
||||
you've picked a class (check the [[Setting up the config-file]] page).
|
||||
|
||||
Getting a list of arenas
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
To get a list of available arenas, you simply type ``/ma arenas``.
|
||||
Arenas that have been set up and are ready for use will be green, and
|
||||
unavailable arenas (disabled or not yet set up) will be gray. Note that
|
||||
you won't see arenas for which you don't have permission, just like you
|
||||
won't be able to actually join an arena for which you don't have
|
||||
permission. Check the [[Permissions]] page for more information.
|
||||
|
||||
The class command
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Normally, you would punch class signs to pick classes, but MobArena also
|
||||
supports picking a class with the ``/ma class`` command. If you want to
|
||||
pick the Knight class, for example, simply type ``/ma class knight``.
|
||||
Forcing manual class selection like this is not recommended, because
|
||||
it's unintuitive and there is no way of listing available classes.
|
||||
Instead, this command is useful if you want to set up command blocks or
|
||||
something more advanced like NPCs wearing the class items and armor, and
|
||||
allowing players to pick the class by interacting with the NPCs.
|
||||
|
||||
Finding out who isn't ready
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sometimes it's hard to keep track of who hit the iron block and who
|
||||
didn't. To figure out which of the players in the lobby have not yet
|
||||
readied up, you can use the ``/ma notready`` command. This is useful if
|
||||
everyone thinks they've readied up and are waiting for everyone else,
|
||||
but in fact one or more people haven't readied up yet.
|
||||
|
||||
Leaving
|
||||
~~~~~~~
|
||||
|
||||
When you're done playing in the arena, you have to leave it with the
|
||||
``/ma leave`` command (unless the ``spectate-after-death`` setting in
|
||||
the config-file is set to ``false``, in which case the command will be
|
||||
executed for you). You may also leave the lobby of an arena you didn't
|
||||
actually want to join, or if you just don't want to play anymore, and
|
||||
you don't want to wait for death.
|
||||
|
||||
Leaving an arena in progress has no consequences other than missing out
|
||||
on the fun! You'll still be given the rewards you earned up to this
|
||||
point. If you don't want your players to be able to leave arenas in
|
||||
progress, you can revoke the permission on a per-class basis. See the
|
||||
[[Setting up the config-file]] page for more information.
|
||||
|
||||
Spectating
|
||||
~~~~~~~~~~
|
||||
|
||||
If you want to spectate an arena already in progress, use the
|
||||
``/ma spec`` command, just like you would use the ``/ma join`` command.
|
||||
Spectating an arena means you will be taken to the spectator area of the
|
||||
arena so you have a great overlook of the arena.
|
||||
|
||||
Spectators cannot interact with the arena players or the monsters in the
|
||||
arena, nor with each other, so there should be no hooligan fights
|
||||
whatsoever.
|
||||
|
||||
Note that when you die in an arena, you will automatically become a
|
||||
spectator, unless ``spectate-after-death`` is set to ``false``.
|
||||
|
||||
A note on inventories
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once you have joined an arena, either for playing or for spectating, you
|
||||
are considered as *in the arena*. What this means is that MobArena will
|
||||
hold on to your inventory until you leave. You leave by typing
|
||||
``/ma leave``, either from the lobby or the arena, or after you've died.
|
||||
If the ``spectate-after-death`` option in the config-file is ``false``,
|
||||
you are automatically kicked out of the arena when you die, so in that
|
||||
case, you won't have to do anything.
|
||||
|
||||
Inventories are stored on a per-player basis until they leave. Joining a
|
||||
new arena (or the same arena again) after finishing a session will not
|
||||
cause your inventory to be overwritten, even though it seems like you
|
||||
have no items. When you leave with the ``/ma leave`` command, all of
|
||||
your earned rewards from all sessions since you first joined will be
|
||||
granted. Of course, with ``spectate-after-death`` set to ``false``, you
|
||||
will automatically leave after every session.
|
92
docs/user/wave-forumulas.rst
Normal file
92
docs/user/wave-forumulas.rst
Normal file
@ -0,0 +1,92 @@
|
||||
#############
|
||||
Wave formulas
|
||||
#############
|
||||
|
||||
This page holds an overview of all the formulas used in the MobArena
|
||||
waves system. Customizing the different properties of the waves should
|
||||
be somewhat easier if they can be calculated, so here they all are!
|
||||
|
||||
About notation: Each variable used in the formulas will have its own
|
||||
name. A variable that starts with a ``#`` denotes "number (of)", so
|
||||
``#players`` means "number of players", and ``#wave`` means "wave
|
||||
number". The function ``min(a,b)`` returns the lowest of the values
|
||||
``a`` and ``b``, and ``max(a,b)`` returns the highest.
|
||||
|
||||
Wave growth
|
||||
~~~~~~~~~~~
|
||||
|
||||
The wave growth node ``growth``, used in default waves, denotes how fast
|
||||
monster amounts grow over time. The base is calculated by half of the
|
||||
number of players, but at most 13 (i.e. there is no difference between
|
||||
25 and 50 players). The amounts can be altered further using the
|
||||
``amount-multiplier`` (see the [[wave setup page\|Setting up the
|
||||
waves]]).
|
||||
|
||||
::
|
||||
|
||||
#monsters = base * #wave^exp
|
||||
base = min(#players/2 + 1 , 13)
|
||||
|
||||
The ``exp`` variable is defined by the growth node, and has the
|
||||
following values:
|
||||
|
||||
::
|
||||
|
||||
slow = 0.5
|
||||
medium = 0.65
|
||||
fast = 0.8
|
||||
psycho = 1.2
|
||||
|
||||
Note that with the node value ``old`` (which is the default), the
|
||||
monster count is ``#wave + #players``.
|
||||
|
||||
Swarm Amount
|
||||
~~~~~~~~~~~~
|
||||
|
||||
The swarm amount node ``amount``, used in swarm waves, denotes how many
|
||||
monsters should spawn in the swarm waves. There will always be at least
|
||||
10 monsters due to the max function and the lowest multiplier value
|
||||
being 10, however this can be further customized with the
|
||||
``amount-multiplier`` (see the [[wave setup page\|Setting up the
|
||||
waves]]).
|
||||
|
||||
::
|
||||
|
||||
#monsters = max(1, #players/2) * multiplier
|
||||
|
||||
The ``multiplier`` variable is defined by the amount node, and has the
|
||||
following values:
|
||||
|
||||
::
|
||||
|
||||
low = 10
|
||||
medium = 20
|
||||
high = 30
|
||||
psycho = 60
|
||||
|
||||
Boss Health
|
||||
~~~~~~~~~~~
|
||||
|
||||
The boss health node ``health``, used in boss waves, denotes how much
|
||||
health the boss has. Note that the ``health-multiplier`` node (see the
|
||||
[[wave setup page\|Setting up the waves]]) **does NOT** affect boss
|
||||
waves at all, so these are the only values that can be used. The minimum
|
||||
health a boss can have is 320 health points (~160 hearts), which is with
|
||||
``low`` health and only 1 player fighting. With 10 players and ``high``
|
||||
health, the boss will have 5500 health points (~2750 hearts).
|
||||
|
||||
::
|
||||
|
||||
health = (#players + 1) * 20 * multiplier
|
||||
|
||||
The ``multiplier`` variable is defined by the health node, and has the
|
||||
following values:
|
||||
|
||||
::
|
||||
|
||||
verylow = 4
|
||||
low = 8
|
||||
medium = 15
|
||||
high = 25
|
||||
veryhigh = 40
|
||||
psycho = 60
|
Loading…
Reference in New Issue
Block a user