[FUN] MobArena v0.96.8 - Become a mob-fighting gladiator! [1.7.x, 1.8.x]

Discussion in 'Archived: Plugin Releases' started by garbagemule, May 30, 2011.

  1. Offline

    garbagemule

    [​IMG]

    MobArena - Become a mob-fighting gladiator!
    [​IMG] Latest build: v0.96.7 (1.7.x)
    [​IMG] Wiki
    [​IMG] IRC Channel
    [​IMG] Source

    BukkitDev Project Page - Find MobArena on dev.bukkit.org here: LINK.

    ------------------------------

    Old description (open)
    If you enjoy fighting monsters for glorious prizes or just the sheer thrill of battle, you and your friends can now join forces against hordes of Minecraft evils in the exciting gladiator-style survival mini-game MobArena!

    Heavily inspired by Deminetix' Fight-plugin, MobArena is a PvE-take on arena-gameplay, with a similar class-based system. Instead of fighting other players, you team up with them to beat oncoming waves of monsters, earning rewards in the process. MobArena can be played alone, or with as many friends as you like!


    Features:
    • Fight oncoming waves of monsters
    • Play alone or team up with friends
    • Earn glorious prizes
    • Customizable classes, rewards and waves
    • Easy to set up
    • Extremely easy to use
    • Very few user commands
    • Supports Permissions and all major economies
    • Supports Spout
    • Supports Heroes
    Note: When you post a bug report, please provide a stacktrace/error from the server log/console window. Post this stacktrace in either a pastebin, a pastie, or a CODE-block! The same applies for config-files, permissions-files, etc! Please don't put them directly in your posts, as they become gigantic and annoying to read. If you don't follow this guideline, I might ignore your post!


    Wiki - Instructions, commands, FAQ, etc.
    I have set up a Wiki for MobArena. It contains a bunch of information and guides on how to set up and customize arenas, an overview of all the commands, how to set up Permissions, as well as frequently asked questions.

    New: MobArena now has its own IRC channel (#mobarena @ EsperNet). Click here for a web-based IRC client. Feel free to stop by to get help setting everything up if you really don't understand the Wiki and the instructional video, or to have a chat about MobArena (or anything else, for that matter) :)

    Relevant links:
    Videos:
    Getting started with MobArena, by Flamers
    Flamers made this really easy-to-follow, simple video of how to get started with MobArena. It covers installing the plugin, defining an arena region and setting up basic leaderboards, as well as a few pointers for arena design.
    Old instructional video (open)
    Instructional video for setting up MobArena:

    Note: This video was made for v0.67, but all the in-game instructions still work the same for the latest versions. The config-file has changed, so make sure to read the Wiki on how to set it up.
    More Videos (open)
    Review of MobArena by plugin reviewer jamescosten (v0.84):

    Note: My nickname "garbagemule" is pronounced "garbage mule", as in "trash donkey" ;)

    Hilarious showcase of MobArena by Daniel James and Daniel Cherry (v0.92.3):


    Delios showing off his beautiful arena setup:


    slowmonkey1227 in his interesting "island" arena: YouTube
    French video by avalondrey (v0.87.3): YouTube
    German video by blutherz and his friends (v0.91.2): YouTube



    Troubleshooting:
    To avoid wasting not only your own time, but mine as well, I expect everyone to do some extensive troubleshooting before posting bug reports. What does this mean?

    Try MobArena on a fresh server.
    MobArena works perfectly fine when I release it. Sure, there are a few bugs, but it works. If it doesn't work for you, something is most likely wrong on your end. Set up a local test-server, and verify that MobArena works before claiming that it doesn't. When you have verified that MobArena does indeed work, you can start adding other plugins and settings until something conflicts.

    Disable other plugins.
    The first thing you need to do is disable all other plugins. If you can't reproduce the bug with other plugins disabled, you know that you have a conflicting plugin. Now perform a binary search on the other plugins, or if you don't know how to do that, just add a couple of plugins back to the plugins-folder, try to reproduce the bug, and if you can't, the conflicting plugin must be in the remaining set of plugins.

    Write down reproduction steps.
    Figure out the exact steps to reproduce/trigger the bug. I need precise steps, and as much information as possible, because there are often many things that could be going on. An example of reproduction steps could be:
    1. Type /ma join
    2. Punch the Archer class sign
    3. Wait for someone else to join
    4. Punch the iron block
    5. Type /ma leave before the other player picks a class

    Check the console window/server.log
    Make sure you check the server.log file for any MobArena errors or exceptions. If you find any, copy the ENTIRE exception (including all the lines that say "at com.garbagemule.MobArena...") and paste it (with the other information) in a CODE-tag here in the thread.


    Donations:
    I develop MobArena for the fun of it and the positive feedback is all it takes to make me happy, but a few people have asked for a link, so if you're one of them, here's a link: Donate - You can donate as much as you want, even down to a few cents! If I get enough donations, I will spend the money on an extra Minecraft account to aid me in developing/testing/debugging MobArena :)


    Changelog:

    Version 0.94.3.24
    • Updated for CB 1337.
    • The repair-delay node is now unused! The reason for this is that it is now possible (with the release of 1317) to cancel block damage in explosions, and still retain the animation and sound! This also means that arenas should be fully pistons-compatible (for arenas that don't use soft-restore or force-restore)! I'm hoping to see some screenshots and videos of shifting arenas! :)
    • You can now right-click signs in the lobby! I finally found a super easy solution to the improperly updating inventory issue with right-clicking class signs. The result is that players can now left- or right-click as they please. This should solve all issues related to players not being able to choose classes, due to spawn region and WorldGuard/Factions/whatever conflicts.
    • It is no longer possible to warp out of the lobby.
    • New per-arena setting: final-wave - Allows for setting a final wave, meaning on that wave, the arena will end, regardless of how many players are alive.
    Version 0.94.3.11 (open)

    • v0.94.3.11 - Updated Register, built against CB 1240.
    • v0.94.3.8 - Added basic leaderboards.
    • v0.94.3.6 - Fixed MagicSpells support - MobArena no longer supports MagicSpells pre-v1.1!
    • v0.94.3.5 - Fixed a bunch of bugs introduced with CB 1185, as well as a couple of minor MobArena bugs.
    • Updated for CraftBukkit #1185
    • Updated economy support (now supports iConomy 6).
    • Added the three new mob types, Enderman/Endermen, CaveSpider/CaveSpiders, Silverfish. They can be used just like the other mob types in the waves.
    • Endermen cannot pick up arena blocks (this is why).
    • Endermen cannot place blocks in arena regions.
    • The per-class permission syntax has been fixed and changed slightly. The Wiki has been updated (clicky).
    • Fixed MagicSpells issues.
    Version 0.94.2 (open)

    • Redstone circuits now work properly in arenas.
    • Lightning now properly strikes on spawnpoints on special waves.
    • Fixed an issue where players somehow warping/cheating out of the arena world get kicked from the server when discovered.
    • Added MagicSpells support. Use the magicspells.yml file to ban certain spells from the arena either for the whole session, or only during boss waves.
    • Fixed the Heroes death conflict. MobArena and Heroes should now play nice together. Further Heroes support is planned for upcoming releases.
    • [COLOR=#1000000]MobArena will no longer support the discontinued Permissions 2.x and 3.x permission systems.[/COLOR] Recommended permissions systems include PermissionsBukkit (defacto standard) or PermissionsEX.
    Version 0.94.1 (open)

    • Added two new boss abilities: 'shuffle-positions' and 'flood'. Try them out!
    • Players disconnecting/crashing during an arena session no longer get corrupted data files due to economy rewards.
    • Weapon durability is now correctly set to "unlimited".
    • Item sub-types (cocoa beans, bonemeal, colored wool, etc.) now work again.
    • Players can no longer join the arena without first picking a class.
    • MobArena now works with spawn-monsters=false again.
    Version 0.94 (open)

    • Completely revamped the waves system! Undeniably the biggest feature in MobArena since multiple arenas in v0.92, the new customizable waves are guaranteed to bring much more awesomeness to your MobArenas. The waves system brings two new wave types, swarm waves and boss waves. The latter is a very elaborate feature, and the whole waves system has been given its own page on the Wiki. Note: MobArena will ignore all old wave settings, but use sane defaults.
    • Revamped the logging system. Instead of logging: true, you can now use logging: yml/xml. The logging system will now keep track of the last session only, but also maintain a collection of 'totals' for each arena. The idea behind these easy-to-parse files is making the stats available on server web pages.
    • Added SuperPerms/PermissionsBukkit support. Note that specifying mobarena.arenas.* and mobarena.classes.* probably won't work, but these nodes are given to everyone by default.
    • Added Spout support. Currently, the only Spouty thing MobArena does is print (some) announcements as notifications/achievements. This should limit the amount of "chat spam" that MobArena produces. Other Spout-features are planned, but don't expect something crazy. Note that MobArena does NOT require Spout!
    • Monsters will no longer target pet wolves. This is a major nerf to pet classes, but they were very overpowered as it was.
    • Fixed item amounts greater than 64 sometimes bugging out. You should now be able to put arrow:1024 for your Archer classes :)
    • Fixed players losing their stored items and/or earned rewards upon disconnecting from the arena.
    • Fixed blocks not restoring when burned by fire.
    • Fixed an issue with entry fees. They should no longer cause any problems.
    • Fixed slimes. That's right! Slimes that spawn as a result of bigger slimes splitting upon death are now considered arena monsters. This also means that Slimes no longer drop slime balls; as intended.
    • Revamped the repairing algorithm. It is now MUCH more sophisticated, and is capable of repairing not only signs and containers, but also torches, doors and beds. Redstone -should- repair properly as well, but it is still slightly buggy.
    • Added support for restorable containers. Registered chests, dispensers, and furnaces will have their contents stored upon arena start, and restored at arena end. This is useful for providing the arena players with chests with e.g. upgrades or food.
    • Added new commands (for the feature above) - /ma addcontainer <name>, /ma delcontainer <name>, /ma containers. These commands work much like the the spawnpoint commands. To add a container, simply look at the container and type /ma addcontainer <name>.
    Changelog (continued)
     
    apes, chakyl, Steffion and 64 others like this.
  2. Offline

    Weasel_Squeezer

    WOW I Should have known better... I usually always check the stack traces, but I guess I was just so agrivated, that I didnt bother and assumed it was MobArenas fault... I feel stupid now lol.
     
  3. Offline

    garbagemule

    Holy shiiiiiiiii...

    MobArena v0.96.2 is out!

    Note 1: v0.96.1 fixes a dire entry-fee issue, so make sure to re-download if you grabbed v0.96!
    Note 2: Apparently there's a new Bukkit API for version checking (that I missed), which must be used for plugins to be accepted on dev.bukkit.org. v0.96.2 is a pro forma update that simply changes the behavior of the version checker to use this new API. There are no other functional changes.

    Get your copy RIGHT HERE.

    This update is possibly the biggest update in MobArena history, and it contains a heck of a lot of different changes, including semi-breaking changes that will require you to do a bit of updating of your config-file and announcements-file, if you want a smooth transition. Make absolutely sure to read the changelog, because if you don't, you'll probably end up with some issues.

    Among the many, many freaking fantastic features of this release, some of the most popular:
    • Revamped the setup process - you'll now be setting up arenas in less than a minute using the interactive Setup Mode, where you just run around and click everywhere to set points and define regions. People familiar with WorldEdit will probably find this extremely useful (and about time).
    • Mounts! Yes! Give your Knight-classes a horse by adding a hay bale to their items. Remember to use the mount customizer tool (link in the changelog) to make the type of horse you want.
    • Unbreakable armor and weapons! That's right! Armor and weapons are unbreakable by default, but if you don't want them to be, you can toggle the feature off.
    • Global start/end announcements to let everyone on the server know when an arena is about to start (first player joined) or when it has just ended.
    • Item glitching should now be virtually impossible, and a bunch of other bug fixes should make this one of the smoothest working releases so far.
    Go check it out!
     
  4. Offline

    PIggySlide

    This is so great!
     
  5. Offline

    garbagemule

    Note: v0.96 has a bug with entry-fees, where it will error out, if using monetary entry-fees (fix one bug, introduce a new one >_>). v0.96.1 fixes this. I have removed the download link for v0.96, so hopefully it should not be an issue for future downloads.
     
  6. Offline

    garbagemule

    Note: Apparently there's a new Bukkit API for version checking (that I missed), which must be used for plugins to be accepted on dev.bukkit.org. v0.96.2 is a pro forma update that simply changes the behavior of the version checker to use this new API. There are no other functional changes.
     
  7. I have a suggestion for you but it might be a tricky one!

    Custom mobs!
    In the Mob Arena folder there can be a new folder called mobs. In there you can have yaml files with custom mobs. The yaml file can be named whatever you want. In the yaml file you can make your own enemy. Like this:

    name: <name> - This will be the name you put in the main config to spawn it in.
    health: <number input> - This will set the health of the mob.
    creature: <a entity name> - This will set what mob it is.
    item: <item name/id> - The item the mob will hold in its hand.
    armor: <item name/id>,<item name/id>,<item name/id>,<item name/id> - The armor of the mob. From helmet to boots. It can support blocks, heads and armor itself.

    Example:
    name: superzombie
    health: 50
    creature: ZOMBIE
    item: diamond_sword
    armor: skull:3,iron_chestplate,iron_leggings,diamond_boots

    What do you think? :)
     
  8. Offline

    garbagemule

  9. Offline

    Bobcat00

    The link to http:garbagemule.binhoster.com/mobarena/tools/mount/ doesn't work on page http://dev.bukkit.org/bukkit-plugins/mobarena/files/29-mob-arena-v0-96-2/

    I see creeper explosions still put out fires. I guess you didn't find a way to either keep the fires burning or restore them when the areas finishes?

    I guess the new version allows players to have horses? Is there an easy way to make it so that a class gets a horse in only one particular arena? EDIT: I guess I can do it with class chests. Do the chests add to the normal class inventory, or replace the inventory?
     
  10. Offline

    garbagemule

    Bobcat00
    Three quickies:
    1. The link works fine on my end. I've heard others complain that it doesn't work, but it could be that binhoster is just down when you tried to visit the page. Try again, and if it still doesn't work, I'll see if there's any way to throw it up on github.io instead.
      Update: Turns out I was looking at the wrong links. In the meantime, I've ported the tools to github.io, which means they should be up whenever github is up (which is often).
    2. I haven't invested any time in soft-restore since it's a huge mess, and I don't want to waste too much effort on something that will eventually be completely scrapped anyway. Unless you can provide a short, concise pull request that fixes the issue, I'm afraid it may have to wait until the mythical v1.0.
    3. Yes (to horses), no (to arena-specific classes), but yes (to class chest workaround). The config-file content is ignored if use-class-chests is true, and a chest is found, in which case the contents of the class chest are copied into the user's inventory.
     
  11. Offline

    Bobcat00

    OK, that works. Thanks! But I have a double-row of class signs, and I had to put the chest 7 blocks below its corresponding sign, not 6 blocks. i.e.:
    Code:
    y=73 Healer class sign
      72 Knight class sign
      71
      70
      69
      68
      67
      66
      65 Knight chest
    
    When I had the chest at y=66, it was picked up by both of the class signs (there's only a single chest, Healer has no chest). You might want to update the documentation.

    Oh, and did you remove the showregion command? It would have been handy to make sure the new 'control room' was within the arena region.
     
  12. Offline

    garbagemule

    Bobcat00
    I guess it depends on how you count. The pillars of search start from the block immediately below the sign[1], and if nothing is found, the block immediately behind the sign[2]:
    Code:
    [S][2]
    [1] |
     |  v
     v
    Pseudo code for the locator method:
    Code:
    LOCATE(block, count)
        if count < 0
            return none
        if block is chest
            return block
        return LOCATE(block.getBelow(), count - 1)
    Which is called with the arguments [1] or [2] as the block, and a count of 6. This means that recursion ends once count reaches -1, which means a total of 7 blocks are checked. If you count it as "the chest must be the n'th block" with n in [1..6], you are correct. If you count it as "there can be at most 6 blocks between the sign and the chest", the documentation is correct.

    I gotta save a link for this post for future reference, puhh...

    As for the showregion command, it was removed, because it is now part of Setup Mode.
     
  13. Offline

    Bobcat00

    Sorry if this has been asked before... But is there anyway to "isolate" the death messages without isolating the general chat? That way, people outside the arena won't be spammed with the death messages.
     
  14. Offline

    garbagemule

  15. Offline

    Bobcat00

    ok, thanks. Sometimes people see all the death messages and they're like, "What's going on?" But I still want people to be able to chat in and out of the game.
     
  16. Offline

    Kezza

    Hi, I am a huge fan of your plugin and we've used it on our servers for ages, and I'm forever helping other servers to set theirs up, and we could not do without it. But the update is causing us some trouble. I've had help from you on the IRC channel garbagemule, but your advice did not work and I can't see what I've done wrong. It's about spawnpoints. We REALLY need to enable most spawnpoints to only activate when players are near, as some of our arenas are huge. But no way in the world is the node going to accept the coordinate instead of a spawnpoint name, as was the old way. I've tried and tried, I've reloaded the plugin heaps of times, I've lost all my arenas and wanted to kill myself several times. I'm near at the end of coping with this. It just won't parse with those coordinates as names. I took your advice, I ran configs through parser, no good has come of it. I am setting the node, for example, at the end of a swarm wave like this:
    spawnpoints: 239,63,535; 227,63,544; 235,63,556 and so on. Your advice that the spawnpoint name was the coordinate (the initial part of each spawnpoint coord) and was to be separated by semi-colons, and I'm sure this is supposed to work but it's not parsing for us, not on any server. With such extensive arenas as we have, I just cannot set them to operate well at all without that feature. I beg you to help! I don't want to have to give up!
     
  17. Offline

    garbagemule

    Kezza
    In the comments section of the ticket I linked you, there's a link to a build (v0.96.3 candidate) that accepts semi-colon separated list of x,y,z-spawnpoint names.

    Happy MobArenaing.
     
  18. Offline

    Kezza

    Oh you GEM!! Thank you! You bet we will! We've just made the most amazing one yet, a huge arena with a crashed aeroplane in it on the ground, with lots of fire and debris; the lobby is the undamaged plane flying above! Then they spawn into the smashed plane in the jungle arena on the ground. It's so great. Testing it for the first time was a hoot. The lobby had chairs in it; just steps; like a normal plane. But they have the Chairs plugin on. Well, we all readied up then I went into the arena - alone! Because they all 'sat' in the chairs and could not be teleported with me, lol. So they had done up their seatbelts and I hadn't... I didn't last long!:D
    You should see my classes - MovieStar, Pilot, LotteryWinner, Rambo, Businessman, Co-Pilot (darn I forgot to do the Priest - you always have one of those).
     
    garbagemule likes this.
  19. Offline

    Bobcat00

    Let me know if you find a way to prevent creeper explosions from putting out the fires.
     
  20. Offline

    garbagemule

    Hi guys, just checking in to attack you with a wall-of-text, and to say that...

    MobArena v0.96.3 is out!

    Get it right here: CLICK FOR GLORY

    v0.96.3 is another so-called "minor" update (saving v0.97 for something special), but do NOT let that fool you! This update is jam-packed with fixes and features, so you'll most likely want to grab this as soon as you can. A rundown of some of the more important aspects of this update:
    • To accompany (or replace, your choice) the auto-start-timer, a new start-delay-timer has been introduced. This timer effectively puts a hard lower bound on the time between the first player joining the lobby, and the actual start of the arena, meaning you can give all players a fair time window to join the arena in, after a session has finished. The timer is, of course, optional, and is compatible with the auto-start-timer in a way that the auto-start-timer only starts after the start-delay-timer has finished.
    • Due to popular request, it is now possible to pick classes with the new command /ma pickclass (or just /ma class for short). Use this in combination with the auto-ready feature, and you can wave goodbye to lobbies full of signs and iron blocks, and use something cooler to represent the class options.
    • Arena containers now properly restore their contents and support all items supported by class chests (yes, that means named items with lore and all that jazz), i.e. all items support by Bukkit's ItemStack class.
    • The per-arena 'protect' flag has been fixed after many years of not working. This means that you can now make MobArena care more about monsters and less about blocks, and have something like WorldGuard take full responsibility for the health of the region. Setting this flag to false will void your (non-existent) warranty.
    • Obsidian Bomb no longer destroys half-blocks and other non-fully-obstructive blocks (like water and lava). The boss ability will now only place bombs in air blocks, and if no air block is found at the target location or 3 blocks above, the ability fails. Use this to create interesting environments where players can hide from the ability!
    • All mobs now properly check if the player they are about to target is still in the arena, i.e. no more strange bugs with mobs going after spectators, and no more boss abilities being cast on players who left the arena just before the ability was about to go off.
    • The per-wave spawnpoints-node has been given a slight revamp. It now expects a semicolon-separated list of spawnpoint names (x,y,z), instead of a comma-separated list. You can guess why this was a big issue.
    • Finally, an extremely elusive bug that caused warps and points translate incorrectly to the config-file has been fixed. This bug usually manifested as players being warped to the bottom of the world when joining the arena.

    Always make sure to read the full changelog, though. There may be changes you didn't expect, which may surprise you in good or bad ways. Stay informed!


    Now, about those updates...

    Since I don't have a lot of spare time, which causes a rather large delay between updates, I'm going to be a little more transparent about what I'm planning on working on, and why it may take a while.

    First of all, I'm a very busy guy. My education is consuming about 50-60 hours per week, and even moreso during exams. Outside of that, just like any other regular Joe, I like to spend time with friends and family. MobArena is important to me, but a couple of other things come first, and I'm sure that most of you (who actually read this) understand. But here it is anyway.

    Secondly, MobArena is currently in a state where the list of suggestions and ideas has become so big and so versatile that it is no longer feasible to simply chuck feature after feature at the code base. The code is too tangled up in itself, and it becomes increasingly difficult to troubleshoot issues and meet everyone's requests. There are three reasons I still add features to the plugin: A) the features are a result of a big or small overhaul of the underlying code that actually make the features possible and much simpler to implement, B) the features are already simple to implement and cause no conflicts with setup archetypes, C) I get a generous donation and a request from a friendly person. With C, I'm just being honest. Since I'm busy, my time has a non-insignificant value (woo, double-negatives!), and if someone matches that value, I can justify spending some time on their request, depending on the request, of course. So don't expect to donate $1 and have me implement an entire dungeon system and features that allow you to recreate Icecrown Citadel from World of Warcraft (SPOILER: which is actually something I have planned for v1.0 already). But if you have a small request and want to buy me a pizza, I'm likely to be open to the idea, if I have the time. Of course, inconsiderate, rude, or people with otherwise bad attitudes get nothing but a virtual slap in the face ;)

    Finally, where is it all going? Well, v1.0 is a bit of a mythical being at this point in time; some say it may never come! I'm hopeful, however. Until then, there are quite a few things I would like to do with the project, though, which include the following:
    • Fix all bugs related to inventory/gamemode/multiworld stuff. There are still some bugs dwelling in the shadows, and I'm having a hard time squashing them. However, I have a small refactoring of a major part of the source code planned, which ought to make things a little simpler to manage, in that regard. This is of top priority for v0.96.4.
    • Make the "pet items" configurable, i.e. make it so you can choose which items should trigger wolves and ocelots, such that incompatibilities with other plugins can be avoided. Along with this, add support for other pets, such as iron and snow golems. This is medium priority for v0.96.4.
    • Revamp the boss ability system slightly. I want to make bosses even more configurable. I want to allow you guys to set various cooldowns and timers for the abilities, and I want to make the abilities easy to configure. The biggest problem with this is how it should be done - how should things look in the config-file(s)? I am open to suggestions, but please make a ticket on DBO for it. This is low priority for v0.96.4.
    • Add support for Mo' Creatures and other Forge plugins (they're not mods, they're plugins). One of the developers of MCPC already implemented this feature in a custom build of MobArena after tinkering with some stuff in MCPC, so there is a chance this will be what tips MobArena's version numbers over to v0.97.
    • Following the necessary refactoring steps for the above feature, I'd like to finally implement jockeys. That's right, it's time for zombie pigmen to ride silverfish, and for skeletons to ride something other than spiders. This is an example of an otherwise great feature being added as a result of a little elbow grease. Just imagine what will be possible in v1.0!
    • Finally, I want to make some updated tutorial videos, and perhaps showcase some of the amazing builds of various servers. Stay tuned for more information if you'd like to showcase your server's arena(s)! I'll make an update everywhere (here, DBO, IRC, TV, radio, you name it) when/if it starts, so make sure to keep yourself up-to-date :)
    So if you made it down this far, kudos! I hope you don't feel like you wasted your time, and I hope you're as excited as I am about it all!
    Cheers,
    mule
     
  21. Offline

    Bobcat00

    Here's my list of demands for the next version:

    (just kidding, of course)

    Actually, what would be nice (and I've seen other people asking for this) would be support for multiple leaderboards. That way we could have a leaderboard in each arena lobby, plus a central area with leaderboards for all the arenas. In other words, coords.leaderboard would contain a list instead of a single entry.

    I also have some ideas for arena status signs, but given your comments on the codebase, this is probably more appropriate for a plugin. I assume it's possible for a plugin to get the state of each arena, number of players, current wave, etc.

    I haven't had any problems regarding multiple worlds and inventories, but I avoid the whole problem by blocking the /mobarena command in my creative world and forcing everyone to leave via a common exit spawnpoint. That keeps things simple, plus I have a method that prevents people from using /back to get back into an arena.
     
    garbagemule likes this.
  22. Offline

    garbagemule

    Bobcat00
    Cheeky monkey ;)

    Multiple leaderboards is a fine idea, but I think I dived into it once and had to bail due to some issues with other parts of the code depending on there being only a single leaderboard. I'll give it another whirl sometime.

    As for status signs, I have written a private plugin that adds join signs with information like whether or not the arena has started, and how many players are in the lobby or currently alive in the session, so yeah, it's definitely possible to make it as an extension plugin, and it wasn't that difficult either. The problem is generalizing these types of features to make them useful to everyone (only signs, signs + commands, only commands, only signs created by admins, etc.?) without making it "configuration hell". For instance, join signs would have to be "registered" (node in the config-file) if you only want specific signs to work (i.e. players can't make a join sign in their base and just use that as they please), because otherwise MobArena wouldn't be able to distinguish them from the non-specific ones. The reason the class signs work without registration is because they only work for lobby players anyway, but there's no such "state configuration" for players and join signs. At the end of the day, though, it probably wouldn't hurt to split the config-file into actual configuration files, and arena-specific setup files (something I've been planning for 1.0 for a while).

    The multiworld/multi-inventory problems can all be solved in the way you describe, but people usually want easier, better, simpler, etc. which is perfectly understandable. But again, the various types of setups makes it very difficult to make everyone happy without forcing people to fork the source code and make the necessary modifications for their server :p
     
  23. Offline

    Bobcat00

    I'm a little disappointed with show-death-messages. I was hoping for a way to restrict death messages to other players/spectators in the same arena (like isolated chat, I guess). It appears the setting cancels the death messages for everyone.
     
  24. Offline

    garbagemule

    Bobcat00
    The relevant ticket: Clicky. I guess this underlines my point about "configuration hell". Now we need either two options ('show-death-messages' and 'isolated-death-messages'), or some sort of multi-valued setting. I'll try to see if I can add a simple 'arena' value for the option that'll make it work like 'isolated-chat'.
     
  25. Offline

    Bobcat00

    Well, it's not a big deal if it turns out to be too much trouble.
     
  26. Offline

    garbagemule

    Bobcat00
    Yeah, semi-bad news :( The death event only has options for setting the value of the death message (setting it to NULL means it won't be shown), not the recipients of the broadcast. One way around this would be to set the message to NULL after extracting it, and then manually broadcasting it to a specific audience.

    Now, the viability of this approach comes down to whether or not people want support for other plugins changing the death messages. MobArena has to listen for the death event on lowest priority (first pick) to cancel out the effects of other death plugins, such as death chests. If customized death messages is not an issue, however, it turns out to be a simple change. With this build, if 'show-death-messages' and 'isolated-chat' are both true, MobArena should only display the death messages to the same audience as 'isolated-chat', but there is no guaranteed support for customized death messages.

    Let me know if it works as expected.
     
  27. Offline

    Bobcat00

    But I don't want isolated chat. (I know, I know, some people are never satisfied.) I think I'm just going to leave well enough alone.

    Thanks for adding the start delay timer.
     
  28. Offline

    garbagemule

    Bobcat00
    Configuration hell, right there. However, now that I think about it, it kind of makes sense to always isolate the death messages, regardless of the chat being isolated or not - spectators will see them as well, so it really should only be "interested parties" that should see them. So I've done it (same link as before). Unless someone objects to it when (or before) v0.96.4 is out, I'll just leave it like that.
     
  29. Offline

    Bobcat00

    So I'm mucking around with a plugin to do stuff like this. I want to update a sign after a player joins the lobby, but the ArenaPlayerJoinEvent occurs before the player joins. So when I check in my listener, there's no one in the lobby.

    What would be a good way to handle this so I can see the arena status after the player has actually joined? A time delay of some sort? Periodic task while the lobby and/or arena has players in it?
     
  30. Offline

    garbagemule

    Bobcat00
    If you listen for the event on MONITOR, the event contract says that the event will not change state at that point (i.e. it will not be cancelled). Thus, you can simply take the number of players currently in the lobby + 1, since the player will, if the event was not cancelled, join the lobby, because all of the sanity checks (permission, entry fee, etc.) happen before the join event is fired (if the command is used, otherwise, call canJoin before playerJoin). This is the most robust way to handle it, and it requires no brittle timers/delays.
     
  31. Offline

    Bobcat00

    OK, thanks. I was hoping to have one routine that would return a comprehensive status for one arena for everything I wanted to do. e.g., state of arena, number of players in lobby, list of not-ready players, number of players in the arena, wave number.

    I have 33 years of software engineering experience (yes, I'm an old guy), but none with OOP and none with Java. So I'm blundering around a lot (saying, "I don't know how to do this") and learning as I go. I'll figure it out.

    I did create a ticket for a new ArenaPlayerReadyEvent, as there is currently no way to tell when someone hit the iron block and goes from not-ready to ready status.
     

Share This Page