DwarfCraft
4.2.1Player progression plugin with skills that are improved by training with npcs (not xp)

Please post all issues on the Github page(under the issues tab on github)
Description:
DwarfCraft is an RPG plugin that allows players to improve their characters skills and capabilities. Players can pay trainers to improve their skills, which provides benefits such as increased weapon damage, decreased tool wear, increased drops from blocks or mobs, etc. Because of the training system, DwarfCraft can provide an interesting and fun RPG base for Survival MP servers that will remain relevant and interesting for casual and intense players alike. The races brought upon by this plugin can be used in very interesting ways. You could add back story to the races and make your world be at war between the races or you could have a peaceful world where all races live in harmony.
Features:
- Players may choose to play as any race you choose. The default races i have provided are Human, Gnome, Dwarf and Elf. Switching resets all skills. The race names are entirely configurable. Players will default to the default race in the config if not they will be forced to chose a race before they can level anything.
- Players use the ItemGUIs (Second Image) to train and deposit items with trainers. Cyan deposits all available required items to the trainer. Lime green trains the skill, while Cactus green trains the skill and then deposits any leftover items to the trainer. Individually clicking an item just deposits that item type to the trainer.
- All settings, skills, effects and races are fully customisable. The level cap could be 1000 if you wanted it to however it is recommended to keep it at level 30 unless you are adept enough to alter the CSV files accordingly.
- Races allow players to specialize in certain skills which allows them to train it past the vanilla level. i.e. Human's (smithing, cooking and farming), Elves (Combat and Hunting), Dwarves (Mining and Excavating) and Gnomes (Brewery and Crafting)
- Races are fully customisable to every extent. You can add up to 9 races but i highly reccommend to have around 4 otherwise the races wont have a distinct personality to them.
- The plugin contains 40+ skills that progress from level 0 (worse than normal) to level 30 (extremely proficient). Each skill has several effects. Most effects reach par at skill level 5. New supported skills will be released.
- Skills are improved by paying a training cost to a trainer. Server admins may place trainers and customized messaging NPCs. Skill costs are increased with level and balanced to encourage specialization. Example: To train "Pickaxe Use" from 0 to 1 cost 16 cobblestone. To train from 15 to 16 cost 640. At level 0 pickaxes degrade 20% faster than normal, at level 20 they degrade about 45% slower.
- A trainer can be almost any EntityType. I.E. the fishing trainer could be a squid.
- Skills and Effect details are easily found through in-game commands.
Github: Here
[NOTE] There are pre-releases available on github however they could be unstable and buggy.
Requirements:
Original Authors' Thread Page: Here
PlaceHolder API plugin support:
Spoiler
Basic PlaceHolders
--------------------------------------------------------------------------------------------------------------------------
%dwarfcraft_maxskilllevel% - Displays the maximum level a player can level a skill to.
%dwarfcraft_racelevellimit% - Displays the maximum level a player can level a skill to for when their race doesn't specialise in a skill
--------------------------------------------------------------------------------------------------------------------------
Player PlaceHolders
--------------------------------------------------------------------------------------------------------------------------
%dwarfcraft_playerrace% - Displays the player's race.
%dwarfcraft_playerlevel% - Displays the player's level
--------------------------------------------------------------------------------------------------------------------------
For Plugin Developers:
Spoiler
The API in DwarfCraft is slowly coming along. Everything should be accessible if you make an object of the plugin through spigot. You can have a look through the source code if it helps. Also your IDE should tell you what most methods do. A Javadocs is in progress. If you need any help just PM me.
Currently there are six events, DwarfLevelUp, DwarfDepositEvent, DwarfEffectEvent, DwarfRaceChangeEvent, DwarfLoadSkillsEvent and DwarfLoadRacesEvent.
DwarfLevelUpEvent is fired whenever a player levels up a DwarfSkill.
DwarfDepositEvent is fired whenever a player deposits item for a DwarfSkill to a trainer.
DwafEffectEvent is fired whenever an effect is fired. i.e. whenever DwarfCraft alters a mob drop, crafting recipe, block drop, etc.
DwarfRaceChangeEvent is fired when a player's race is attempted to be changed. (Just before the race change is saved into the database)
DwarfLoadSkillsEvent is fired just after all the skills are read from the csv files.
DwarfLoadRacesEvent is fired just after the races.config file is read.
Here's an example of how to utilise DwarfCraft.
public class Companion extends JavaPlugin implements Listener {
private DwarfCraft dwarfcraft;
@Override
public void onDisable() {
}
/**
* Called upon enabling the plugin
*/
@Override
public void onEnable() {
PluginManager pm = getServer().getPluginManager();
if (getServer().getPluginManager().getPlugin("DwarfCraft") == null || getServer().getPluginManager().getPlugin("DwarfCraft").isEnabled() == false) {
System.out.println("[Companion] Couldn't find DwarfCraft!");
System.out.println("[Companion] Companion now disabiling...");
getServer().getPluginManager().disablePlugin(this);
return;
}
dwarfcraft = (DwarfCraft) pm.getPlugin("DwarfCraft");
System.out.println("[Companion] Hooked into DwarfCraft!");
pm.registerEvents(this, this);
System.out.println("[Companion]" + getDescription().getName() + " version " + getDescription().getVersion() + " is enabled!");
}
public void onPlayerInteract(PlayerInteractEvent event) {
DCPlayer player = dwarfcraft.getDataManager().find(event.getPlayer());
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
if(player.getRace().equalsIgnoreCase("Dwarf")) {
//DO SOMETHING HERE
}
}
}
}Commands & Permission Nodes:
Spoiler
The commands shown below are all sub commands of the base command DwarfCraft. i.e. "/DwarfCraft <subcommand>"
For Example "/DwarfCraft SkillSheet"
Basic Commands
--------------------------------------------------------------------------------------------------------------------------
SkillSheet - Displays your skillsheet.
Info - Displays a General Info Page about DwarfCraft.
Rules - Displays the set Server Rules in the DwarfCraft config.
SkillInfo - Displays the Progress/Info of the specific Skill of that player.
Race - Displays the DwarfCraft Race GUI which displays a players race information, or changes it.
EffectInfo - Displays the Effect of the specified skill of the specified player.
Tutorial - Gives the player the DwarfCraft Pocket Guide
--------------------------------------------------------------------------------------------------------------------------
Admin Commands
--------------------------------------------------------------------------------------------------------------------------
Debug - Changes the Debug Level the less it is the more Debug Messages you will see.
Reload - Reloads DwarfCraft.
Race - Allows an admin to manually change a players race.
Tutorial - Allows an admin to give a player the DwarfCraft Pocket Guide
List - List all the trainers that are on the server.
SetSkill - Sets the level of the specified skill on the specified player.
Create - Creates a DwarfCraft Trainer at your location.
--------------------------------------------------------------------------------------------------------------------------
Permissions Nodes:
dwarfcraft.norm.dwarfcraft
- This base command permission node is required for all sub commands to work
dwarfcraft.norm.commandname
- This permissions node is only for the specified Basic Commands.
dwarfcraft.norm.race.racename
- This permissions node is for races, if the player doesn't have the perm they can't change to this race. The race name has to be in lowercase.
dwarfcraft.op.commandname
- This permission node is only for the specified Admin Commands.
Skills:
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.9MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
4.7MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta