Skip to content

Latest commit

 

History

109 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation


AchievementsEngine

Add achievements to your Minecraft server.

Tested minecraft versions:

1.18.2 1.19.3

Installation

Put achievementsengine.jar to your plugins folder and restart the server.

Configuration

%nl% - new line
Use § sign instead of & for colors

achievements.yml

* means anything, eg. kill 10 * (means kill 10 any entity), drop 64 * (means drop 64 of any item)
*% means anything like, eg. break 64 *%ore (means break 64 any block which name contains ore)

Supported events:

- join        // Join event, eg. join 1 server
- kill*       // Kill event, eg. kill 20 zombie named Super Zombie!!
- break       // Break block event, eg. break 64 dirt
- place       // Place block event, eg. place 128 spruce_log
- pickup*     // Pickup (how many items, not how many times) item event, eg. pickup 32 slime_ball
- T_pickup*   // Pickup (how many times, not how many items) item event, eg. T_pickup 5 dirt
- drop*       // Drop (how many items, not how many times) item event, eg. drop 64 stone
- T_drop*     // Drop (how many times, not how many items) item event, eg. T_drop 10 diamond_sword
- craft*      // Craft (how many items, not how many times) item event, eg. craft 1 cake
- T_craft*    // Craft (how many times, now how many items) item event, eg. craft 10 diamond_pickaxe
- enchant*    // Enchant item event, eg. enchant 1 diamond_sword named Magic sword!
- fish        // Fish (using fishing rod) event, eg. fish 64 pufferfish
- catch       // Catch (using fishing rod) entity, eg. catch 10 wolf
- shoot*      // Shoot event, eg. shoot 20 bow
- throw       // Throw event, eg. throw 64 snowball, throw 10 trident
- command     // Send command event (without arguments), eg. command 30 /ae
- chat        // Send chat message event, eg. chat 10 Wiggle-Wiggle
- breed       // Breed animals event, eg. breed 10 cow
- complete    // Complete achievement event, eg. complete 1 <other achievement key>
- sign        // Edit sign event, eg. sign 10 This_is_my_house
- furnace     // Take from furnace event, eg. furnace 15 glass (glass is a product)
- eat         // Eat event, eg. eat 64 apple

* - event that supports names, eg. kill 1 villager named Some Villager

YML Fields:

Every key must be child of "achievements"
Before below fields add parent key

enabled - Mark if achievemnt is enabled
name - Achievement name
description - Achievement description
item - GUI item (default is bedrock)
showProgress - If true shows the progress in GUI and e
announceProgress - If true announce when player will progress in achievement by sending chat message to him
requiredProgress - Is a number. You can specify what sum of progress player need to complete this achievement. Set to 0 to disable.

In this case player needs to mine total 10 of these ores Player can mine 5 iron ores and 5 gold ores to complete this achievement

requiredProgress: 10
events:
- break 10 iron_ore
- break 10 gold_ore

world - Specify in which world player have to be to make progress in this achievement
events - List of events required to complete this achievement (syntax: {EVENT} {HOW_MANY_TIMES} {BLOCK/ENTITY/ITEM/TEXT} [named] [TEXT]), eg.

events:
- break 64 dirt
- fish 10 cod

actions - List of actions (commands) which will be fired when player will complete achievement

{0} - player nickname
{1} - achievement name
actions:
- say {0} completed achievement {1}!
- give {0} minecraft:diamond 1

Example configuration:

achievements:
  '0':
    enabled: true
    name: '§6§lMarksman'
    description: '§aShoot 64 times from bow%nl%§aRewards:%nl%§b12 diamonds'
    item: BOW
    showProgress: false
    announceProgress: false
    events:
    - shoot 64 bow
    actions:
    - give {0} minecraft:diamond 12
  'fisherman':
    enabled: true
    name: '§1§lFisherman'
    description: '§aFish 50 cods%nl%§aRewards:%nl%§232 emeralds'
    item: FISHING_ROD
    showProgress: true
    announceProgress: tre
    events:
    - fish 50 cod
    actions:
    - give {0} minecraft:emerald 32
  'fame':
    enabled: true
    name: '§6§lIm fame!'
    description: '§aComplete all achievements'
    item: GOLD_BLOCK
    showProgress: false
    announceProgress: false
    events:
    - complete 1 0
    - complete 1 fisherman
    actions:
    - give {0} minecraft:gold_block 64
    - 'say {0} Completed all achievements! ;O'

Default configuration:

achievements:
  '0':
    enabled: true
    name: §2§lSample Achievement
    description: §aUse /ae command and get 1 diamond.
    item: BEDROCK
    showProgress: false
    announceProgress: false
    events:
    - command 1 /ae
    actions:
    - give {0} minecraft:diamond 1
messages.yml

YML Fields:


prefix - Commands prefix.
gui-title - GUI title
gui-next - Next GUI page
gui-previous - Previous GUI page
complete-message - Complete achievement chat message. {0} is achievement name, {1} is description, {2} is events, {3} is actions
progress-message - Progress achievement chat message. {0} is achievement name
progress - Progress (text in GUI)
progress-field-prefix: Prefix in GUI progress list
completed - Completed (text in GUI)
not-downloaded - Let the user know that his data is not downloaded yet (mostly for SQL)


event-translation - Syntax: eventName: translation - shows event differently in GUIHandler when showProgress is set to true

Default configuration:

messages:
  prefix: '§2[§6AchievementsEngine§2] '
  gui-title: Achievements (Page {0}/{1})
  gui-next: §f§lNext page
  gui-previous: §f§lPrevious page
  complete-message: "§6§k--------------%nl%%nl%§a§lNew achievement!%nl%§a§lUnlocked:
    {0}%nl%%nl%§6§k--------------"
  progress-message: §aYou made progress in achievement {0}§a!
  progress: "§6§lProgress:"
  progress-field-prefix: §7§l- §b
  completed: §aCOMPLETED!
  not-downloaded: '§cWhoaa! Not too fast? Your data is not downloaded yet, please try again later!'

event-translation:
  any: "Any item/entity/block"
  named: "named"
  join: "Join"
  kill: "Kill"
  break: "Break"
  place: "Place"
  pickup: "Pickup"
  T_pickup: "Pickup (times)"
  drop: "Drop"
  T_drop: "Drop (times)"
  craft: "Craft"
  T_craft: "Craft (times)"
  enchant: "Enchant"
  fish: "Fish"
  catch: "Catch"
  shoot: "Shoot"
  throw: "Throw"
  command: "Command"
  chat: "Chat"
  breed: "Breed"
  complete: "Complete"
  sign: "Sign"
  furnace: "Furnace"
  eat: "Eat"
config.yml

useYAML - When set to true plugin will be using YAML to save data
useSQL - When set to true plugin will be using SQL to save data
saveInterval - Interval between data saves (in seconds)
logSave - When set to true every save will send message to console
keepPlayersInMemory - When set to true, all player's states (completed achievements, progress) etc. is saved in memory. When set to false it destroys when player left the server
disableOnException - If set to true then when SQL exception appear the plugin will be disabled

Default configuration:

config:
  useYAML: true
  useSQL: false
  saveInterval: 300 # 5 minutes
  logSave: true
  keepPlayersInMemory: false
  disableOnException: true

sql:
  host: ''
  user: ''
  password: ''
  database: ''
  port: 3306

Commands & Permissions

/ae - Show achievements list, permission to receive any achievement ae.use
/ae help - Shows help page, permission that let using below commands (and /ae help) ae.manage
/ae reload - Reload config ae.reload
/ae achievements - Print all achievements and requirements to complete ae.achievements
/ae complete <nick> <achievement> - Complete achievement for some player ae.complete
/ae remove <nick> <achievement> - Remove player's completed achievement ae.remove
/ae reset <nick> <achievement> - Reset player's achievement progress ae.reset
/ae transfer <from> <to> - Transfer player's completed achievements and progress to other player ae.transfer

About

Add achievements to your Minecraft server

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages