mirror of
https://github.com/garbagemule/MobArena.git
synced 2025-01-09 18:08:10 +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
|
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)
|
||||||
[![Build Status](https://travis-ci.org/garbagemule/MobArena.svg?branch=master)](https://travis-ci.org/garbagemule/MobArena)
|
========
|
||||||
|
|
||||||
|
MobArena is an arena-style minigame for Spigot-based Minecraft servers
|
||||||
|
|
||||||
MobArena is an arena-style minigame for Bukkit-based Minecraft servers.
|
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
If you don't want to compile the plugin yourself, grab a release artifact from
|
If you don't want to compile the plugin yourself, grab a release artifact from
|
||||||
one of these two sites:
|
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
|
The wiki here on Github should have all the information you need to get
|
||||||
started using the plugin.
|
started using the plugin.
|
||||||
|
|
||||||
|
|
||||||
## Getting Help
|
## Getting Help
|
||||||
|
|
||||||
If you run into problems or need help with something, feel free to hop on IRC
|
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
|
(#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:
|
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
|
response immediately. It could take anything from a couple of seconds to a
|
||||||
day, but your message _will_ be seen.
|
day, but your message _will_ be seen.
|
||||||
|
|
||||||
|
|
||||||
## Bugs and Suggestions
|
## Bugs and Suggestions
|
||||||
|
|
||||||
Found a bug or have a great idea for the plugin? Use the issue tracker here on
|
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
|
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.
|
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