Bounty:
type: format
format: "<green>Bounty Officer<white>: <text>"
Bounty Kill Mobs:
type: world
debug: false
events:
on entity death:
- if <context.damager.entity_type||none> == PLAYER {
- define killer <context.damager>
- define type <context.entity.entity_type>
- define baby <context.entity.age.is[LESS].than[0]>
- define burning <context.entity.fire_time.in_seconds.is[!=].to[0]>
- if %type% == PIG {
- determine passively NO_XP
- if %baby% {
- determine NO_DROPS
} else if %burning% {
- determine li@i@grilled_pork
} else {
- determine li@i@pork
}
} else if %type% == CHICKEN {
- determine passively NO_XP
- if %baby% {
- determine NO_DROPS
} else if %burning% {
- determine li@i@cooked_chicken
} else if <util.random.int[1].to[10]> < 6 {
- determine li@i@raw_chicken|i@feather
} else {
- determine li@i@raw_chicken
}
} else if %type% == SHEEP {
- determine passively NO_XP
- if %baby% {
- determine NO_DROPS
}
else if %burning% {
- determine li@i@cooked_mutton
}
else if <util.random.int[1].to[10]> < 7 {
- define colour <context.entity.color>
- if %colour% == silver define colour light_gray
- determine li@i@mutton|i@%colour%_wool
} else {
- determine li@i@mutton
}
} else if %type% == COW {
- determine passively NO_XP
- if %baby {
- determine NO_DROPS
} else if %burning% {
- determine li@i@cooked_beef
} else if <util.random.int[1].to[10]> < 4 {
- determine li@i@leather|i@raw_beef
} else {
- determine li@i@raw_beef
}
} else if %type% == HORSE {
- determine NO_DROPS_OR_XP
} else if %type% == RABBIT {
- determine passively NO_XP
- if %baby% {
- determine NO_DROPS
} else if %burning% {
- determine li@i@cooked_rabbit
} else if <util.random.int[1].to[10]> < 3 {
- determine li@i@rabbit|i@rabbit_foot
} else {
- determine li@i@rabbit
}
} else if %type% == MUSHROOM_COW {
- determine passively NO_DROPS_OR_XP
- define drops li@
- if <util.random.int[1].to[10]> < 3 {
- define drops <%drops%.include[i@leather]>
}
- if <util.random.int[1].to[100]> < 85 {
- define drops <%drops%.include[i@red_mushroom]>
- if <util.random.int[1].to[100]> < 5 {
- define drops <%drops%.include[i@raw_beef]>
}
- if <%drops%.size> != 0
- determine %drops%
}
} else if %type% == SQUID {
- determine passively NO_XP
- determine li@i@ink_sack
} else if <def[type].contains_any[wolf|ocelot|bat|villager]> {
#- narrate format:Bounty "You killed a <context.entity.entity_type.to_lowercase> and gained no xp!" targets:%killer%
- determine NO_DROPS_OR_XP
} else if %type% == SPIDER || %type% == CAVE_SPIDER {
- determine passively 5
- define drops li@
- if <util.random.int[1].to[100]> < 40 {
- define drops <%drops%.include[i@string]>
}
- if <util.random.int[1].to[100]> < 80 {
- define drops <%drops%.include[i@spider_eye]>
}
- if <%drops%.size> != 0 {
- determine %drops%
}
} else if %type% == SKELETON {
- determine passively 5
- define drops li@i@bone
- if <util.random.int[1].to[100]> < 5 {
- define drops <%drops%.include[i@bow[durability=<util.random.int[195].to[300]>]]>
}
- determine %drops%
} else if %type% == CREEPER {
- determine passively NO_DROPS
- determine passively 5
- if <util.random.int[1].to[100]> < 65 {
- determine li@i@sulphur
}
} else if %type% == ZOMBIE {
- determine passively 5
- determine li@i@rotten_flesh
} else if %type% == PIG_ZOMBIE {
- determine passively 7
- define drops li@i@rotten_flesh
- if <util.random.int[1].to[10]> < 2 {
- define drops <%drops%.include[i@gold_nugget]>
}
- determine %drops%
} else if %type% == ENDERMAN {
- determine passively NO_DROPS
- determine passively 8
- if <util.random.int[1].to[10]> < 4 {
- determine li@i@ender_pearl
}
} else if %type% == SILVERFISH {
- determine passively 5
- determine NO_DROPS
} else if %type% == WITCH {
- determine 5
- random {
- determine li@i@stick|i@stick
- determine li@i@stick|i@stick
- determine li@i@stick|i@stick
- determine li@i@sugar|i@sugar
- determine li@i@spider_eye|i@stick
}
}
#- announce "<aqua><%killer%.name> <white>killed a <yellow>%type%" to_console
} else {
- determine NO_DROPS_OR_XP
}
Bounty Command:
type: command
debug: false
name: bounty
usage: /bounty [player] [amount]
description: Allows you to check and place bounty on a player.
allowed help:
- determine <player.flag[verified]||<context.server>>
tab complete:
- if <player.has_flag[verified]||<context.server>> determine <server.list_online_players.parse[name].filter[starts_with[<context.args.first>]]>
script:
- if <context.args.size> == 0 || <context.args.size> > 2 {
- narrate format:ServerChat "Invalid number of arguments. <&nl> Correct command syntax: <white>/bounty [player] [amount]"
#- narrate format:ServerChat "Correct command syntax: <white>/bounty [player] [amount]"
}
else if <context.args.size> == 1 {
- define selPlayer <server.match_player[<context.args.get[1]>]||none>
- if %selPlayer% != none {
- define amount <%selPlayer%.flag[bounty]||0>
- narrate format:ServerChat "<Yellow><%selPlayer%.name> <blue>has <white>$%amount% <blue>bounty on them"
- log "<player.name||Console> checked the bounty of <%selPlayer%.as_player.name>. Bounty: $<%selPlayer%.as_player.flag[bounty]||0>" file:plugins/Denizen/logs/bounty.log
}
else {
- narrate format:ServerChat "No player found by that name!"
}
}
else if <context.args.size> == 2 {
- define selPlayer <server.match_player[<context.args.get[1]>]||none>
- if %selPlayer% != none {
- define amount <context.args.get[2].as_int||none>
- if %amount% != none && %amount% > 0 {
- if <context.server> || <player.money> >= %amount% {
- flag <%selPlayer%.as_player> bounty:<t[<%selPlayer%.has_flag[bounty]>]:<%selPlayer%.flag[bounty].add[%amount%]>||%amount%>
- if !<context.server> {
- take money qty:<def[amount]>
}
- narrate format:ServerChat "You added <white>$%amount% <blue>bounty to <yellow><%selPlayer%.as_player.name><&nl> <blue>Total bounty: <white>$<%selPlayer%.as_player.flag[bounty]>" targets:<player>
- narrate format:ServerChat "<yellow><player.name||Console> <blue>placed a bounty on <yellow><%selPlayer%.as_player.name><&nl> <blue>They now have a total bounty of: <white>$<%selPlayer%.as_player.flag[bounty]>" targets:<server.list_online_players.exclude[<player||none>|<%selPlayer%.as_player>]>
- narrate format:ServerChat "<yellow><player.name> <blue>placed a bounty on you for <white>$%amount%<&nl> <blue>You now have <white>$%amount% <blue>in bounty on your head!"
- log "<player.name||Console> added $%amount% bounty to <%selPlayer%.as_player.name>. Total bounty: <%selPlayer%.as_player.flag[bounty]>" file:plugins/Denizen/logs/bounty.log
}
else {
- narrate format:ServerChat "You do not have enough money!" targets:<player>
- log "<player.name> attempted to add $%amount% bounty to <%selPlayer%.as_player.name> but did not have enough funds." file:plugins/Denizen/logs/bounty.log
}
}
else {
- narrate format:ServerChat "Invalid amount. Enter a whole, positive number. <&nl> e.g. 500"
}
}
else {
- narrate format:ServerChat "No player found by that name!"
}
}
Bounty Reward:
type: world
events:
on player kills player:
- define killed <context.entity>
- - if <>%killed%.has_flag[bounty]> {
+ - if <%killed%.has_flag[bounty]> {
- define bounty <%killed.flag[bounty]>
- give money qty:%bounty%
- flag <%killed%.as_player> bounty:!
- narrate format:ServerChat "<yellow><player.name> <blue>killed <yellow><%killed%.as_player.name> <blue>and retrieved <white>$%bounty% <blue>in bounty!" targets:<server.list_online_players.exclude[<player>|<%killed%.as_player>]>
- narrate format:ServerChat "You killed <yellow><%killed%.as_player.name> and gained <white>$%amount% from their bounty!" targets:<player>
- narrate format:ServerChat "<yellow><player.name> <blue>killed you and collected your bounty!" targets:<%killed%.as_player>
}
else {
- narrate format:ServerChat "You have been killed by <yellow><player.name><&nl> <blue>You can place a bounty on them using <white>/bounty"
}
-