Slayer
Slayer adds new task-based gameplay to Minecraft with inspiration from RuneScape's "Slayer" skill.
Notice
Due to my involvement with another very large project (Demigods 3, a continuation and complete remake from the ground up of Demigods 2), I will not be updating Slayer for a while. I will hopefully get to it within a month or two and start adding more features. I greatly apologize for any inconvenience this may cause. Stay tuned for eventual updates though. Thank you.
Installation
To install Slayer, simply drop the Slayer.jar file into your plugins directory and reload! A configuration file will be generated automatically along with two other task and string configuration files and you can use those to fine-tune your Slayer installation.
Slayer v1.2 Changelog
Updating
As of Slayer v1.1, the plugin includes a built in automatic update system so you never have to bother downloading from BukkitDev and messing with FTP again. You can set the plugin to automatically update on reload when a new update is available, or you can set it to a command (/slayer update) reserved for users with the slayer.update
permission node. By default, Slayer will automatically notify those same users when a new update is available, but you can disable that too.
It's highly recommended that you keep auto update enabled as it allows for faster bug fixes and feature releases, but it's of course completely up to you if you want to leave it set to auto or not.
Features
- Generates a
tasks.yml
file which allows you to completely customize your server's tasks.- Currently supports timed tasks, item obtaining tasks, mob killing tasks, and more to come!
- Includes 17 creatively designed default tasks (all editable of course) which allow you to start playing immediately!
- Extremely easy-to-use item processing screen to update your tasks.
- Specify item rewards for task completions (with enchantments too!).
- Rewards are saved in the players very own rewards "backpack" for easy viewing and obtaining.
- Set limits on how many tasks players can have at any given time.
- Tasks are extremely easy to choose via the Task Inventory which holds automatically generated "Task Scrolls" (/tasks).
- Sends active progress messages to players upon completing elements of their assigned tasks and lets them know when they can fully complete a task.
- Customizable messages for Slayer-related events via the generated
strings.yml
file. - If enabled, will automatically prevent players from camping at spawners for kills.
Planned Features
In-depth StatisticsMostly finished!Leveling system to allow for greater expandability.Finished!New UI-based task displaying (moving as much out of the chat as possible).Finished!Rework the reward handling to be simpler and easy to use.Finished!- Leaderboard
- Give players economy-related rewards (will work with most major economy plugins)
- More task types and features!
- Allow random rewards for tasks.
- Possible NPC support. (?)
- Allow admins to set time periods that tasks that can be used (a task can be reused after X hours).
Any planned feature listed above is subject to change or removal, though it's unlikely.
Known Issues
- Already completed tasks are available again after the server is restarted.
These issues are at the top of my priorities to fix. If you run into any more, please leave me a comment below.
Commands
Basic Commands | Description |
---|---|
/slayer | Returns some information about the Slayer plugin. |
/sl | Returns a list of available commands. |
/sl tasks | If enabled, this will give the player a list of all available tasks. |
/process | Opens the player's item processing team to allow them to submit items to their active tasks. |
/accept | Used when accepting a task selected from the Task Inventory. |
/sl my info | Gives the player some Slayer info about themselves. |
/sl my tasks | Shows the player a list of their current tasks. |
/rewards | Returns a list of the player's current available rewards. |
/sl forfeit <#> | Allows the player to forfeit an assignment and if enabled, will punish them. |
/sl leaderboard | Displays the Slayer task leaderboard. |
/sl scoreboard | Displays the Slayer task leaderboard. |
Administrative Commands | |
/slayer update | Only available to OPs and players with the slayer.update permission node. Allows for in-game automatic updating of the entire plugin. |
/sladmin | Returns a list of available administrative commands. |
/sladmin save | Forces Slayer to save its current state just as it would periodically. |
/sladmin clear entities | Clears all entities from the tracking system (used to prevent camping). |
/sladmin remove task <player> <#> | Removes the task with the specified id from the player. |
/sladmin reset player <player> | Resets the entire save for the player given back to default. |
/sladmin set points <player> <amount> | Sets the points for the player to the amount specified. |
/sladmin set level <player> <level> | Sets the level for the player to the what's specified. |
Configuration
Setting | Default | Description |
---|---|---|
Miscellaneous | ||
join_message | true | Sends quick message about Slayer when joining. |
private_scoreboard | true | (Only applies to those running a compatible CraftBukkit build.) Allows players to have a Slayer scoreboard to show them personalized stats while they play. |
level_up_firework | true | Shoots a firework above the player upon leveling up. |
Updating | ||
auto | true | Automatically updates the plugin if there is a new stable version available. |
notify | true | Notifies applicable players that there is an update available. |
Tasks | ||
limit | 5 | The maximum number of tasks a player can have at a time. |
full_list | true | Allows players to see a full list of available tasks. |
join_reminders | true | Sends the player a task reminder when joining. |
completion_firework | true | Shoots off a pretty firework at the player's location when completing a task. |
point_multiplier | 1.0 | A global multiplier for all task values. (Multiples whatever is set as the value for the task in the tasks.yml file by the specified amount. |
reusable | false | Hides completed tasks if set to false. Otherwise it will allow the player to do the same task multiple times. |
Forfeiting | ||
enable | true | Allows players for forfeit tasks after being assigned. |
punish | true | Punishes the player by removing points from their total. |
Expirations | ||
punish | true | Punishes the player by removing points from their total. |
Blocking | ||
spawner_kills | true | Blocks players from camping at spawners for kills by making those kills not count. |
Data | ||
save_freq | 300 | The frequency (in seconds) at which to save Slayer data. |
assignment_refresh_freq | 120 | The frequency (in seconds) to clear up old assignments. |
entity_tracking_period | 1200 | The time (in seconds) to keep entities spawned via spawners in memory to prevent camping. If you notice significant lag (very unlikely), try reducing this number. |
Permissions
Node | Description |
---|---|
slayer.basic | Allows for basic use of the Slayer plugin. |
slayer.admin OP Default | Gives administrative permissions to the player. |
slayer.update OP Default | Allows the user to update the entire plugin via the update command. |
Support and Suggestions
To report bugs, make suggestions, or receive support for Slayer, please leave a comment below and I will get back to you as soon as possible.
Do you plan on adding citizens support soon? As that is the one thing that I'm really looking forward too.
@underscoreAlex
Ah right haha
Thanks for looking into it :)
@jnoshima
That doesn't actually refer to a task in the tasks.yml file, it's referring to a task within the Java instance. It still does have something to do with Slayer, however. I'll be sure to look into it.
Thanks for letting me know!
I'm getting an error on task 12
I'm not sure how to get the error from the command prompt, but I took a shot of what it says Link Removed: http://www.mediafire.com/convkey/baf6/89cchg9f6bfl1mwfg.jpg
The task list is the default
not sure what it means...
@peaceone
Just open up Pastebin (http://pastebin.com) and paste in the entire error you're getting in the text box, select "Java" from the "Syntax Highlighting" drop down menu, and then click submit and just post the link it gives you here.
As for enchantments, they're very easy to use in Slayer. Here's an example reward layout:
You will simply need to replace "ENCHANTMENT_NAME" with the name of the enchantment you want to apply and then replace "LEVEL" with the level you want to give it. You can use any level you want (1 - ∞), though some may display incorrectly if they go beyond that specific enchantment's max level. If you just want to apply the max level that an enchantment can be in vanilla Minecraft, simply put in "max" for the level.
Here is a list of all enchantment names:
Some are self explanatory while others you may need to experiment with. Keep in mind that I didn't choose these names - these are the actual names of the enchantments inside of Bukkit/Minecraft. This may seem complex but I assure you it's remarkably simple. Sometime soon I hope to make a more in depth how-to for the plugin, possibly a small Wiki too.
@underscoreAlex
sure thing just one question how do i use paste bin. never used it before. also could you maybe post how all the enchantment rewords are meant to be written, i noticed they are written a lot different then most plugins.
@peaceone
Can you send me the entire error along with a copy of your tasks.yml (unless it's the unedited default, in which case just let me know)? Pastebin will work well. Thanks and sorry you're having an issue!
i get a error saying some thing about task 17. does this just mean one of my tasks is messed up? [SEVERE] org.apache.commons.lang.UnhandledException: Plugin Slayer v1.2.2 generated an exception while executing task 17
@Zeenos
Awesome! And I'm sorry, I don't quite understand what you mean. Can you elaborate a bit?
it works great for me! got only one issue... tried to do the zombie task in the mob arena and the task desapear but has a fine correct.
@peaceone
I have added this to the known issues and will look into it when I get the chance to. Thanks for reporting that!
it works great i have found a issue, i don't want my players to be able to do a task more then once and the issue what i have ran into on my test server is this. if i do a server reboot players can do all the tasks they already completed again. any way to prevent this? if not can you add some thing in the config that prevents players from doing the tasks again after reset
@Sir_weasel4
The point/value system is already there, it's just currently backend and not available for use. In the future when I'm able to start working on Slayer again I plan on implementing an economy reward option. So that could be used alongside the standard value for tasks and therefore could be used with other shop plugins.
The random task system is there as well, just also not used... I've made a lot of preparation for features that just haven't been implemented yet. I'm not sure when I'll be able to work on Slayer again. But I'll get these little things implemented as soon as I can when I do start up work again. :)
Suggestion:
Add a points system for completing tasks, like in Runescape. Tasks could be assigned a reward point value in the config, and could be spent on items defined in another config. This shop could be brought up by using /sl shop or something. Also, would there be any way to add a different system where it assigns you a random task instead of choosing one? Thanks for the great plugin, once I get everything set up properly im sure my players will love it!
@Sir_weasel4
@peaceone
I just uploaded the updated version. It should be approved by
tomorrowMonday. :)Any chance of an update? Just to get it working on 1.5.2, no new stuff?
Hey man please update! I just tried using the plugin on my 1.5.2 server and the plugin does not work at all. it does not generate a folder or any anything.
Hey I can't wait for you to work on this! I'm going to be using this for my faction server! I was wondering if maybe some time you can put in tasks that if one faction member takes it on they can allow the whole faction to do the task with them to gain faction money/ rewords.
I just wanted to comment and let everyone know that I'll be starting work again soon on Slayer. I've been extremely busy the last couple of weeks with school. I'll be graduating High School this Friday, so after then I'll have a ton of time to devote to Slayer and other plugins.
A lot of cool stuff will be coming so hang in there!
@ecianice
Okay, so I understood you correctly then. I'll try to get the expanded rewards added as soon as possible!
I took a look at ScrollingMenuSigns and it is a pretty nice plugin, but I'm not all into depending on other plugins. You can never tell when they'll go belly up and then you're out of luck. I like doing it all in house.
That's awesome that you've invested so much time in learning Java though, keep it up! And yes, classes can be split into separate files as well as split into multiple packages, which are really just folders. It's not mandatory but is viewed as a good practice when dealing with larger applications and just to simply keep better organization.
Thanks for the comments again, I'll do my best to keep the great work going! :)