Commit Graph

393 Commits

Author SHA1 Message Date
garbagemule
95fc5eeb6e Create setup command.
The /ma setup <arena> command is the first step in the process of
making the setup procedure more intuitive. The command consists of
the actual command handling, as well as a multi-role inner class,
and together they constitute Setup Mode.

- Toolbox; a set of tools are provided to the user, and a handler
  for the interact event will react to the usage of these tools,
  providing the primary, interactive element of Setup Mode. The
  tools are used to set regions, warps and points.
- Text input; by typing 'exp', the user can expand a given region
  in the typical directions (up, down, out), and by typing 'show',
  the user can request red wool blocks to be displayed in place of
  region frames, warps and points.

Whilst in Setup Mode, the user cannot type any commands, because
the input is intercepted due to the Conversations API - this is
by design, and may prevent some inconsistencies.

The next step in the process will be to fully remove the commands
that Setup Mode renders obsolete. The commands include, but are
not limited to:
- set(lobby)region
- expand(lobby)region
- setwarp
- addspawn
- delspawn
- addchest
- delchest
2013-08-29 01:09:19 +02:00
garbagemule
9f7c009d85 Add more show methods to ArenaRegion. 2013-08-29 00:41:04 +02:00
garbagemule
a4218ae18c Remove debug printouts. 2013-08-29 00:40:23 +02:00
garbagemule
aae6593323 Fix desc of delspawn command. 2013-08-28 08:53:41 +02:00
garbagemule
17d9068aa0 Stop the blaze fires. 2013-08-26 00:22:16 +02:00
garbagemule
470291c626 No more breaking item frames and paintings. 2013-08-23 16:37:19 +02:00
garbagemule
0a2956fb81 Fix MagicSpells config loading issue. 2013-08-23 16:22:42 +02:00
garbagemule
402e6d4de9 Fix lobby potion stuff. 2013-08-22 15:00:50 +02:00
garbagemule
09b1eb9599 Tidy up the set lobby region command. 2013-08-20 18:16:13 +02:00
garbagemule
b11b9d3eb1 Add a setting command. 2013-08-20 17:32:53 +02:00
garbagemule
709480a80f Expose a reloadArena() command in the ArenaMaster. 2013-08-20 17:31:37 +02:00
garbagemule
eb04693c3f Tidy up commands.
- The execute() method has had its docs redefined to reflect how the
  CommandHandler now handles the return value of the method. That is,
  if the method returns false, the CommandHandler prints the usage
  message and description of the command to the command sender.
- Commands now only return false when they should, according to the
  updated docs of the execute() method.
- Most commands have been tidied up a bit, i.e. they've had some
  unnecessary code removed in the advent of the new usage printing
  of the CommandHandler.
- Some commands have had their patterns altered slightly.
- The order of command registration now matters. That is, the order
  commands are registered in will be the order in which the help
  screen will display the command usages and descriptions.
- The help screen now shows ordered commands, and separates the
  types into user, admin and setup sections for a better overview.
2013-08-20 16:36:28 +02:00
garbagemule
e7d3da4db3 Omit [MobArena] on usage messages. 2013-08-20 15:46:52 +02:00
garbagemule
4ce8dcfad3 Simplify first-join => join 2013-08-20 14:40:12 +02:00
garbagemule
6ef8bf23da Fix item glitching.
Let's see you glitch items out now, suckers!
2013-08-19 06:22:31 +02:00
garbagemule
69741a3bdc Add showlobbyregion command. 2013-08-19 04:57:51 +02:00
garbagemule
957545dfe1 Fix all issues related to the lobby region. 2013-08-19 04:56:38 +02:00
garbagemule
d3187fd2de Fix all damage bugs with lobby/spec area.
This simple little do'h has caused many issues, but no more, I say!
NO MORE!
2013-08-19 04:54:43 +02:00
garbagemule
701177a9e2 Fix last standing API. 2013-08-19 02:23:33 +02:00
garbagemule
809ee2facb Expose min- and max-player methods on Arena. 2013-08-19 02:22:44 +02:00
garbagemule
3b47ca407e Fix upgrade waves. 2013-08-18 00:28:00 +02:00
garbagemule
9c411a21ad replaceAll => replace for dollar sign compatibility. 2013-08-16 17:52:32 +02:00
garbagemule
22a8f43fce Add missing wrapper for classchest location setter. 2013-08-16 05:48:18 +02:00
garbagemule
a2328c7271 Avoid NPE with Locations in config files. 2013-08-16 05:31:32 +02:00
garbagemule
8793bd6cef Backwards compatibility for leaderboard coords. 2013-08-16 03:27:54 +02:00
garbagemule
186fc498cf Make root-target a littler rootier. 2013-08-16 01:18:00 +02:00
garbagemule
b0c630df36 Fix color code gibberishing for announcements. 2013-08-16 01:09:39 +02:00
garbagemule
e1feb5172c Fix config reloading. 2013-08-16 01:09:23 +02:00
garbagemule
b9e3a5df0b Fix typo in error message. 2013-08-15 18:11:41 +02:00
garbagemule
ef9fd267c1 Revamp the announcements system.
This commit transforms the announcements system in the following way:
- announcements.yml makes it easier to add missing nodes and remove
  obsolete ones. This way, users don't have to delete their previous
  announcements-file to get the new keys.
- Color codes are supported in the fact that when an announcement
  message is "set()", the string value has all of its &-symbols
  translated.
- No need for a defaults-file, because the enum is very easy to
  compile into a YAML file.
2013-08-15 17:55:21 +02:00
garbagemule
22723d883a Bye bye, Spout. 2013-08-15 15:12:37 +02:00
garbagemule
a3ab2203be Get rid of config adapter.
This change involves many classes because the adapter was relied upon
heavily throughout the project. The change is motivated by the fact
that the wrapper created more problems than it solved. Those problems
(listed here) are solved by this commit. Some classes have undergone
notable changes (e.g. ArenaRegion).

- The config-file will no longer overwrite and regenerate itself
  seemingly randomly.
- The config-file will now save correctly when setting points and
  expanding regions.
- The "no class items in lobby" problem has been fixed.
- The "must be inside region" problem has been fixed.
2013-08-15 14:37:10 +02:00
garbagemule
2475ae3633 Add support for arbitrary filenames... 2013-08-15 04:45:07 +02:00
garbagemule
e99a2f3d44 Fix double-print for loaded arenas. 2013-08-15 04:30:19 +02:00
garbagemule
d92e3e8925 Let's leave out the printlns... 2013-08-15 03:46:49 +02:00
garbagemule
d73a0ed707 Fix "no class items on class selected".
The fix is simply a reload of the config-file after initially loading
the config-file. For some reason it works. No clue why >_>
2013-08-15 03:44:47 +02:00
garbagemule
b6f81e0823 World-change code for set(lobby)region. 2013-08-15 03:41:21 +02:00
garbagemule
a87831a12f Set world-node when world changes. 2013-08-15 03:40:58 +02:00
garbagemule
a15f60b761 Lazy initialization of selected arena.
This fixes issues with having to restart the server for "not ready"
type messages.
2013-08-15 03:39:26 +02:00
garbagemule
8a45e0c953 Make sure we can force worlds. 2013-08-15 00:45:26 +02:00
garbagemule
f1b94fbbcc Correct leaderboards error message. 2013-08-14 22:53:36 +02:00
garbagemule
63ff94b04f Multiworld leaderboards. 2013-08-14 22:37:42 +02:00
garbagemule
f98fe0b78f Multiworld exit-warp and location formatting. 2013-08-14 22:36:12 +02:00
garbagemule
b3cb258d0b Fix lobby region expansion command. 2013-08-14 22:33:44 +02:00
garbagemule
80f091acaa Add world name to coords. 2013-08-13 15:27:33 +02:00
garbagemule
a3cef8339e StringBuffer => StringBuilder, thanks IntelliJ ^_^ 2013-08-13 14:59:11 +02:00
garbagemule
c500c4f80e Remember to add the actual command class ;) 2013-08-13 14:56:10 +02:00
garbagemule
1673078df5 Add classchest command.
The classchest command can be used to link a chest to a class directly
(although still in the same world) without having to position them in
a specific pillar under the signs.
2013-08-13 14:54:34 +02:00
garbagemule
c24f9f8ccc Switch to floating point numbers for locations.
This allows spawnpoints and warps to be specified more precisely.
2013-08-13 14:51:16 +02:00
garbagemule
a5fea824b7 Tossing IntelliJ a bone. 2013-08-10 16:57:24 +02:00
garbagemule
c282fe7000 Add baby zombie villagers 2013-08-10 16:38:44 +02:00
garbagemule
76330f06d3 Add unbreakable-weapons and unbreakable-armor. 2013-08-08 18:23:33 +02:00
garbagemule
345efc9136 ArenaCompleteEvent: s/winners/survivors 2013-08-08 17:58:19 +02:00
garbagemule
544fd91de9 Introduce "last player standing" to death event.
It is now possible to check if an arena player who died was the last
player alive in the arena. Useful for special rewards and stuff.
2013-08-08 06:09:07 +02:00
garbagemule
e3381e895d Some null checks for pet spawner. 2013-08-07 02:00:17 +02:00
garbagemule
3ae69f6cf4 ACTUALLY add the event >_> 2013-08-07 00:10:56 +02:00
garbagemule
1f91dde9e5 Add ArenaCompleteEvent
This event is fired when the final wave was completed and contains
a set of all the players who survived until the end.
2013-08-06 23:59:19 +02:00
garbagemule
0b6a017c32 Include arena in ArenaKillEvent. 2013-08-06 23:58:42 +02:00
garbagemule
2b5291b593 Fix multi-arena join/spec interleaving issues.
- When a player attempts to join or spec an arena while they are
in an arena (arena or lobby), they will be denied access.
- When a player attempts to join or spec an arena while they are
spectating an arena, they will be force-left first.
2013-08-06 12:21:06 +02:00
garbagemule
d57f47fb05 Add ArenaKillEvent
This event is fired whenever an arena player kills either a monster
or another player. Useful for plugin extensions.
2013-08-06 10:33:02 +02:00
garbagemule
312ef3c55a Expose command interface. 2013-08-05 12:42:34 +02:00
garbagemule
48686aafcb Add support for minor economy values. 2013-08-03 04:16:31 +02:00
garbagemule
029a976dc7 Uncancel sign interaction in lobby. 2013-08-03 01:14:14 +02:00
garbagemule
e6a0f30993 Add per-class lobby-permissions node. 2013-08-03 01:13:18 +02:00
garbagemule
dbe5f4d20f Add optional per-arena exit warp. 2013-08-01 16:13:24 +02:00
garbagemule
f43293a376 Attempt to fix multiworld inventory issues. 2013-07-30 23:37:03 +02:00
garbagemule
13948e7554 Add global first-join announce feature. 2013-07-30 23:04:49 +02:00
garbagemule
ea4031b0ed Add isolated chat option. 2013-07-30 22:07:57 +02:00
garbagemule
9230f823fb More task scheduling. Fixes #199 2013-07-30 21:57:36 +02:00
garbagemule
7d27e52d7c Allow flint and steel fire in edit mode. 2013-07-30 13:48:04 +02:00
garbagemule
a5fb96a880 Prevent task scheduling on disable. 2013-07-30 13:31:11 +02:00
garbagemule
859baf7b71 Add global end announcement feature. 2013-07-28 14:21:40 +02:00
garbagemule
d926d99298 Make auto-start kick message customizable. 2013-07-24 14:29:31 +02:00
garbagemule
b643cce511 Fix class chest bones not giving pets. 2013-07-22 19:10:11 +02:00
garbagemule
d6fe6ade4c Add monster type: baby pigmen 2013-07-22 18:26:41 +02:00
garbagemule
de5f21ca1d Fix custom boss abilities not loading. 2013-07-17 15:19:17 +02:00
garbagemule
b6b2ecc168 Fix auto-ready not working for class chests. 2013-07-17 15:15:48 +02:00
garbagemule
bd095dafd5 Change the way region setting works.
The region now contains two location references per region point for
the bounding boxes where p1, p2, l1 and l2 remain the same (min/max),
but also additional locations for the player's actual location, such
that e.g. moving back and re-setting a point has the more intuitive
behavior of expanding regardless of the optimized points.

This also (hopefully) finally fixes the previous issues with the setup
process *knock on wood*.
2013-07-09 04:37:19 +02:00
garbagemule
ed69606388 Fix the region setup bug.
Previously, the set() method would overwrite coordinates completely
without min/max'ing the values to preserve the invariant that p1 is
the lowest point and p2 the highest.
2013-07-05 14:59:09 +02:00
garbagemule
55bbd4ff85 Leave out 1.6 stuff until a stable release. 2013-07-03 14:00:03 +02:00
garbagemule
4a267f5ab5 Use item number for hay bales until 1.6 2013-07-03 13:57:28 +02:00
garbagemule
9b236587da Merge branch 'bleeding' of github.com:garbagemule/MobArena into bleeding 2013-07-03 13:36:48 +02:00
garbagemule
0a6a49410d Some 1.6 updates... 2013-07-03 13:36:41 +02:00
garbagemule
97e9bbc923 Fix default fixed waves. 2013-07-03 13:35:27 +02:00
acstache
07637d087a update ClassLimitManager to provide a set of names of Players who have picked the provided ArenaClass. This will allow manipulating players of just a certain class more easily than before. One possibility is (mind you this is NOT implemented) adding potion effects to a class 2013-07-01 23:51:26 -04:00
garbagemule
22762bf521 Fix setup issue and remove region expansion
This commit consists of two components:
- Restarts are no longer required after setting up the first arena
- Regions no longer auto-expand

The restart requirement is fixed by preventing the ArenaMaster from
actually creating an Arena object and assigning it to the selected
arena upon generating the default arena node in the config-file. The
problem was that the selected arena was set to this initial Arena
object, but another Arena object was created afterwards, which due
to the equals() method of ArenaImpl overwrote the previously created
Arena object in the arenas-list, but didn't change the reference in
the selected arena. In other words; two identical Arena objects were
created, but used in different places (arena list vs. selected arena).

The auto-expansion is removed by simply never auto-expanding regions
upon setting the arena warp or spawnpoints. Instead, setting these
warps throws an error, if p1 and p2 have not yet been set, or if the
location is outside the region.
2013-07-01 19:29:38 +02:00
garbagemule
62eebaa134 Cleanup. 2013-06-27 00:41:54 +02:00
garbagemule
243d0b00fb Add fixed setting for default waves. 2013-06-27 00:29:23 +02:00
garbagemule
65c5ea05b3 Add per-arena setting to enable/disable scoreboards. 2013-06-27 00:05:14 +02:00
garbagemule
97c54855d4 Attempt to fix some XP issues. 2013-06-25 01:58:28 +02:00
garbagemule
e2bae68db1 Ability cleanup.
- All the core abilities have been moved into the project folders
  such that they no longer require any extraction. As such, all
  servers should have the abilities already installed and ready
  to use, regardless of setup-retardation.
- An attempt at fixing the "invisible bosses" issue; a call to
  removeBoss was replaced with getBoss - hopefully this fixes
  all the issues.
2013-06-25 01:53:45 +02:00
garbagemule
1320c34f67 Major revamp of Upgrade Waves.
Using a node setup similar to that of the classes-section, it is
now possible to make complex Upgrade Waves that update weapons
and armor on-the-fly. This also means 'permissions' upgrades.
2013-06-24 22:24:01 +02:00
garbagemule
adb8ee1668 Add checkspawns command. 2013-06-24 22:10:07 +02:00
garbagemule
325b252696 Add showspawns command. 2013-06-24 21:44:18 +02:00
garbagemule
4d95b67cb1 Fix reload issues! Woooo! 2013-06-24 14:48:33 +02:00
garbagemule
3386ba3794 Use ChatColor in ScoreboardManager. 2013-06-24 11:15:52 +02:00
garbagemule
069394c9f5 Add per-arena setting: display-timer-as-level 2013-06-22 13:06:44 +02:00
garbagemule
fe8a8ffa80 Fix the all-node for upgrade waves. 2013-06-22 12:06:13 +02:00
garbagemule
52599319c1 Attempt at fixing reload issues. 2013-06-22 12:02:45 +02:00
Andreas Troelsen
db953285c5 Add per-arena setting 'auto-ready'. 2013-06-10 10:43:03 +02:00