Paste #16253: Edit of P#16251 - Edit of P#16249 - Edit of P#16247 - Edit of P#16245 - Edit of P#16242 - Untitled P

Date: 2015/06/04 03:08:52 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


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.as_int.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
    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 "<%selPlayer%.name> has $<def[amount]> bounty on them."
                - log "<player.name||Console> checked the bounty of <%selPlayer%.as_player.name>. Bounty: <%selPlayer%.as_player.flag[bounty]>" 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:%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]>"
                        - narrate format:ServerChat "<player.name||Console> placed a bounty on <yellow><%selPlayer%.as_player.name> <blue>of <white>$%amount%<blue> <&nl>                   They now have a total bounty of: <white>$<%selPlayer%.as_player.flag[bounty]>" targets:<server.list_online_players.exclude[<player||none>]>
                        - 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 to place this bounty." 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!"
            }
        }