# ======================= #
# Author: KeangDavid #
-# Version: 1.5.3 #
+# Version: 1.6.0 #
# Denizen: 0.9.7-SNAPSHOT #
-# Build: 382 #
+# Build: 394 #
# Core: 1.10 #
# ======================= #
-# MUST USE DEV BUILD 237 OR LATTER!
+# MUST USE DEV-BUILD 237 OR LATTER!
# ----- Banners Command ----- #
BannersCommand:
type: command
debug: false
name: banners
description: gives banners
usage: /banners [banner]
permission: dCustom.banner
permission message: <red>Permission needed, <script.yaml_key[permission]>
aliases:
- banner
tab complete:
- if <c.args.get[1].is[==].to[color]> determine <script.yaml_key[dyes]>
- determine spell|get|color
givebanner:
- define item "<i@banner_%banner%.replace[white].with[color1].replace[black].with[color2].escaped>"
- define item "<def[item].unescaped.replace[color1].with[<player.flag[bannerfont]||white>].replace[color2].with[<player.flag[bannerback]||BLACK>]>"
- give <def[item]>
script:
- - if <c.args.size.is[==].to[0]> {
- - narrate "<green>========== Banner Help =========="
- - narrate "<dark_aqua>/banner spell [banners]<aqua>: gives the [banners] typed."
- - narrate "<dark_aqua>/banner get [banner]<aqua>: gives the specified [banner]."
- - narrate "<dark_aqua>/banner color [font] [background]<aqua>: Sets the colors for the banners you recive."
- - queue clear }
-
- - if <c.args.get[1].is[==].to[spell]> {
- - define text <c.raw_args.after[spell<&sp>].to_lowercase.to_list.separated_by[ab]>
- - foreach <def[text].escaped.replace[ab].with[|]> {
- - if <def[value].matches[([a-z]|\d)]> define banner <def[value]>
- - if "<def[value].is[==].to[?]>" define banner question
- - if "<def[value].is[==].to[ ]>" define banner space
- - if "<def[value].is[==].to[%]>" define banner percent
- - if "<def[value].is[==].to[*]>" define banner asterisk
- - if "<def[value].is[==].to[-]>" define banner minus
- - if "<def[value].is[==].to[+]>" define banner plus
- - if "<def[value].is[==].to[,]>" define banner coma
- - if <def[value].contains[&]> define banner <script.yaml_key[escape.<def[value].after[&]>]>
- - if <server.list_scripts.contains[s@banner_%banner%]> inject locally givebanner
- else give banner_question
- }
- }
-
- - if <c.args.get[1].is[==].to[get]> {
- - define banner <c.args.get[2]>
- - if <server.list_scripts.contains[s@banner_%banner%]> {
- - inject locally givebanner
- } else {
- - narrate "<red>banner_%banner% not found." }
- }
-
- - if <c.args.get[1].is[==].to[create]> {
- - define banner <player.item_in_hand>
- - log "<&nl>" type:none file:banners.yml
- - log ":banner_<c.args.get[2]>:" type:none file:banners.yml
- - log ": type: item" type:none file:banners.yml
- - log ": no_id: true" type:none file:banners.yml
- - log ": pattern:" type:none file:banners.yml
- - foreach <def[banner].patterns> { - log ": - <def[value]>" type:none file:banners.yml }
- - log ": material: <player.item_in_hand.before[;]>;patterns=<<>script.yaml_key[pattern]<>>]" type:none file:banners.yml
- }
-
- - if <c.args.get[1].is[==].to[color]> {
- - if <script.yaml_key[dyes].as_list.contains[<c.args.get[2]>]> flag player bannerfont:<c.args.get[2]>
- else flag player bannerfont:WHITE
- - if <script.yaml_key[dyes].as_list.contains[<c.args.get[3]>]> flag player bannerback:<c.args.get[3]>
- else flag player bannerback:BLACK
- - narrate "<aqua>Banner font set to <player.flag[bannerfont]>. Banner background set to <player.flag[bannerback]>."
- }
-
+ - choose <c.args.get[1]>:
+ - case spell:
+ - define text <c.raw_args.after[spell<&sp>].to_lowercase.to_list.separated_by[ab]>
+ - foreach <def[text].escaped.replace[ab].with[|]> {
+ - if <def[value].matches[([a-z]|\d)]> define banner <def[value]>
+ # could do with replaceing this block with a list.
+ - if "<def[value].is[==].to[?]>" define banner question
+ - if "<def[value].is[==].to[ ]>" define banner space
+ - if "<def[value].is[==].to[%]>" define banner percent
+ - if "<def[value].is[==].to[*]>" define banner asterisk
+ - if "<def[value].is[==].to[-]>" define banner minus
+ - if "<def[value].is[==].to[+]>" define banner plus
+ - if "<def[value].is[==].to[,]>" define banner coma
+ - if <def[value].contains[&]> define banner <script.yaml_key[escape.<def[value].after[&]>]>
+ - if <server.list_scripts.contains[s@banner_%banner%]> { - inject locally givebanner } else { - give banner_question } }
+ - case get:
+ - define banner <c.args.get[2]>
+ - if <server.list_scripts.contains[s@banner_%banner%]> {
+ - inject locally givebanner
+ } else {
+ - narrate "<red>banner_%banner% not found." }
+ - case create:
+ - define banner <player.item_in_hand>
+ - log "<&nl>" type:none file:banners.yml
+ - log "banner_<c.args.get[2]>:" type:none file:banners.yml
+ - log " type: item" type:none file:banners.yml
+ - log " no_id: true" type:none file:banners.yml
+ - log " pattern:" type:none file:banners.yml
+ - foreach <def[banner].patterns> { - log ": - <def[value]>" type:none file:banners.yml }
+ - log " material: <player.item_in_hand.before[;]>;patterns=<<>script.yaml_key[pattern]<>>]" type:none file:banners.yml
+ - case color:
+ - if <script.yaml_key[dyes].as_list.contains[<c.args.get[2]>]> flag player bannerfont:<c.args.get[2]>
+ else flag player bannerfont:WHITE
+ - if <script.yaml_key[dyes].as_list.contains[<c.args.get[3]>]> flag player bannerback:<c.args.get[3]>
+ else flag player bannerback:BLACK
+ - narrate "<aqua>Banner font set to <player.flag[bannerfont]>. Banner background set to <player.flag[bannerback]>."
+ - case random:
+ - repeat <c.args.get[2]||1> {
+ - inject bannerrandomtask instantly
+ - give i@banner<server.flag[temp]>
+ - wait 1s
+ }
+ - case list:
+ - if <server.list_scripts.contains[s@KseangDavid_API]> { - run BannersINV
+ } else { - narrate "<red>/banner list<aqua>:<&sp>Requires KeangDavids API http://mcmonkey.org/denizen/repo/entry/54" }
+ - default:
+ - narrate "<green>========== Banner Help =========="
+ - narrate "<dark_aqua>/banner list<aqua>: shows all banners in a inventory."
+ - narrate "<dark_aqua>/banner get [banner]<aqua>: gives the specified [banner]."
+ - narrate "<dark_aqua>/banner spell [banners]<aqua>: gives the [banners] typed."
+ - narrate "<dark_aqua>/banner color [font] [background]<aqua>: Sets the colors for the banners you recive."
- - if <c.args.get[1].is[==].to[random]> {
- - repeat <c.args.get[2]||1> {
- - inject banner_random_task instantly
- - give i@banner<server.flag[temp]>
- - wait 1s
- }
- }
escape:
pipe: pipe
quo: quotation
sq: apostrophe
dot: period
bs: backslash
fs: forwardslash
exc: exclamation
co: colon
sc: semicolon
dyes: li@BLACK|BLUE|BROWN|CYAN|GRAY|GREEN|LIGHT_BLUE|LIME|MAGENTA|ORANGE|PINK|PURPLE|RED|SILVER|WHITE|YELLOW
patterns:
- BASE
- BORDER
- BRICKS
- CIRCLE_MIDDLE
- CREEPER
- CROSS
- CURLY_BORDER
- DIAGONAL_LEFT
- DIAGONAL_LEFT_MIRROR
- DIAGONAL_RIGHT
- DIAGONAL_RIGHT_MIRROR
- FLOWER
- GRADIENT
- GRADIENT_UP
- HALF_HORIZONTAL
- HALF_HORIZONTAL_MIRROR
- HALF_VERTICAL
- HALF_VERTICAL_MIRROR
- MOJANG
- RHOMBUS_MIDDLE
- SKULL
- SQUARE_BOTTOM_LEFT
- SQUARE_BOTTOM_RIGHT
- SQUARE_TOP_LEFT
- SQUARE_TOP_RIGHT
- STRAIGHT_CROSS
- STRIPE_BOTTOM
- STRIPE_CENTER
- STRIPE_DOWNLEFT
- STRIPE_DOWNRIGHT
- STRIPE_LEFT
- STRIPE_MIDDLE
- STRIPE_RIGHT
- STRIPE_SMALL
- STRIPE_TOP
- TRIANGLE_BOTTOM
- TRIANGLE_TOP
- TRIANGLES_BOTTOM
- TRIANGLES_TOP
-# ----- Banners Command End ----- #
-
-# ----- RANDOM ----- #
+BannerListener:
-banner_random_listener:
type: world
debug: false
events:
- on player places BANNER_RANDOM_ITEM:
+ on player places BANNERRANDOMITEM:
- take <player.iteminhand>
- - inject banner_random_task
- - give banner_random_item<server.flag[temp].replace[li@]>
+ - inject bannerrandomtask
+ - give bannerrandomitem<server.flag[temp].replace[li@]>
+
+ on player clicks in bannerlist:
+ - define banner <c.item.display_name>
+ - if <c.raw_slot.is[OR_LESS].to[<c.inventory.size>]> { - inject s@bannerscommand path:givebanner }
+# ----- Banners Command End ----- #
+
+
+
+# ----- Banners Inventory ----- #
+BannersINV:
+ type: task
+ debug: false
+ inventorytype: 'CUI'
+ size: '<server.list_scripts.filter[contains[banner_]].size.div[9].round_up.as_int.mul[9]>'
+ title: '<blue>Banners Alphanumeric'
+ name: 'bannerlist'
+ script:
+ - ^foreach <server.list_scripts.filter[contains[banner_]].alphanumeric> {
+ - define slots "<def[slots]||li@>|<def[value].replace[s@].with[i@]>[display_name=<def[value].after[banner_]>]" }
+ - ^define slots <def[slots].remove[1]>
+ - ^run inv def:<script>|<def[slots].escaped>
+# ----- Banners Inventory ----- #
+
-banner_random_item:
+
+# ----- RANDOM ----- #
+bannerRandomItem:
type: item
material: i@banner
-banner_random_task:
+bannerRandomTask:
type: task
debug: false
script:
- flag server temp:!
- repeat <util.random.int[2].to[7]> {
- flag server temp:->:<s@bannersCommand.yaml_key[dyes].as_list.random>/<s@bannersCommand.yaml_key[patterns].random>
}
- flag server temp:[base_color=<s@bannersCommand.yaml_key[dyes].as_list.random>;patterns=<server.flag[temp].as_list>]
# ----- RANDOM END ----- #
# ----- SYMBOLS ----- #
banner_arrowleft:
type: item
no_id: true
pattern:
- white/rhombus_middle
- white/half_vertical_mirror
- black/square_top_right
- black/square_bottom_right
- black/triangles_bottom
- black/triangles_top
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_arrowright:
type: item
no_id: true
pattern:
- white/rhombus_middle
- white/half_vertical
- black/square_top_left
- black/square_bottom_left
- black/triangles_bottom
- black/triangles_top
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_arrowup:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_center
- black/curly_border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_arrowdown:
type: item
no_id: true
pattern:
- white/stripe_bottom
- white/stripe_center
- black/curly_border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_plus:
type: item
no_id: true
pattern:
- WHITE/STRIPE_CENTER
- WHITE/STRIPE_MIDDLE
- BLACK/STRIPE_BOTTOM
- BLACK/STRIPE_TOP
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
banner_minus:
type: item
no_id: true
pattern:
- WHITE/STRIPE_MIDDLE
- BLACK/STRIPE_BOTTOM
- BLACK/STRIPE_TOP
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
banner_asterisk:
type: item
no_id: true
pattern:
- WHITE/STRIPE_DOWNLEFT
- WHITE/STRIPE_DOWNRIGHT
- WHITE/STRAIGHT_CROSS
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
banner_forwardslash:
type: item
no_id: true
pattern:
- WHITE/STRIPE_DOWNLEFT
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
banner_backslash:
type: item
no_id: true
pattern:
- WHITE/STRIPE_DOWNRIGHT
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
banner_percent:
type: item
no_id: true
pattern:
- WHITE/SQUARE_BOTTOM_RIGHT
- WHITE/SQUARE_TOP_LEFT
- BLACK/RHOMBUS_MIDDLE
- WHITE/STRIPE_DOWNLEFT
- BLACK/BORDER
material: i@banner[base_color=BLACK;patterns=<script.yaml_key[pattern]>]
# ----- SYMBOLS END ----- #
# ----- PUNCTUATION ----- #
banner_period:
type: item
no_id: true
pattern:
- white/triangles_bottom
- black/stripe_right
- black/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_exclamation:
type: item
no_id: true
pattern:
- white/stripe_center
- black/stripe_bottom
- white/triangles_bottom
- black/stripe_right
- black/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_question:
type: item
no_id: true
pattern:
- black/half_horizontal
- white/stripe_right
- black/stripe_left
- black/square_bottom_right
- white/stripe_top
- black/border
material: i@banner[base_color=white;patterns=<script.yaml_key[pattern]>]
banner_quotation:
type: item
no_id: true
pattern:
- white/stripe_top
- black/triangles_top
- black/straight_cross
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_space:
type: item
no_id: true
material: i@banner[base_color=black]
banner_pipe:
type: item
no_id: true
pattern:
- white/stripe_center
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_coma:
type: item
no_id: true
pattern:
- white/stripe_center
- black/rhombus_middle
- black/stripe_top
- black/curly_border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_semicolon:
type: item
no_id: true
pattern:
- white/stripe_top
- black/stripe_left
- white/square_bottom_left
- black/half_vertical_mirror
- black/curly_border
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_colon:
type: item
no_id: true
pattern:
- white/stripe_center
- black/rhombus_middle
- black/stripe_downleft
- black/stripe_downright
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_apostrophe:
type: item
no_id: true
pattern:
- white/stripe_center
- black/diagonal_left_mirror
- black/diagonal_right
- black/stripe_downleft
- black/curly_border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
# ----- PUNCTUATION END ----- #
# ----- UPERCASE LETTERS ----- #
banner_A:
type: item
no_id: true
pattern:
- white/stripe_left
- white/stripe_right
- white/stripe_top
- white/stripe_middle
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_B:
type: item
no_id: true
pattern:
- white/stripe_right
- white/stripe_bottom
- white/stripe_middle
- white/stripe_top
- black/curly_border
- white/stripe_left
- white/stripe_middle
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_C:
type: item
no_id: true
pattern:
- white/stripe_right
- black/stripe_middle
- white/stripe_bottom
- white/stripe_top
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_D:
type: item
no_id: true
pattern:
- white/stripe_right
- white/stripe_top
- white/stripe_bottom
- black/curly_border
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_E:
type: item
no_id: true
pattern:
- white/stripe_middle
- white/stripe_left
- white/stripe_top
- white/stripe_bottom
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_F:
type: item
no_id: true
pattern:
- white/stripe_middle
- white/stripe_left
- white/stripe_top
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_G:
type: item
no_id: true
pattern:
- white/stripe_right
- black/half_horizontal
- white/stripe_left
- white/stripe_top
- white/stripe_bottom
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_H:
type: item
no_id: true
pattern:
- white/stripe_right
- white/stripe_left
- white/stripe_middle
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_I:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_bottom
- white/stripe_center
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_J:
type: item
no_id: true
pattern:
- white/stripe_left
- black/half_horizontal
- white/stripe_bottom
- white/stripe_right
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_K:
type: item
no_id: true
pattern:
- white/half_vertical
- white/cross
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_L:
type: item
no_id: true
pattern:
- white/stripe_left
- white/stripe_bottom
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_M:
type: item
no_id: true
pattern:
- white/triangle_top
- black/triangles_top
- white/stripe_right
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_N:
type: item
no_id: true
pattern:
- white/stripe_left
- white/stripe_downright
- white/stripe_right
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_O:
type: item
no_id: true
pattern:
- black/rhombus_middle
- white/stripe_right
- white/stripe_left
- black/border
material: i@banner[base_color=white;patterns=<script.yaml_key[pattern]>]
banner_P:
type: item
no_id: true
pattern:
- white/half_horizontal
- black/stripe_center
- white/stripe_top
- white/stripe_middle
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_Q:
type: item
no_id: true
pattern:
- black/rhombus_middle
- white/stripe_right
- white/square_bottom_right
- white/stripe_left
- black/border
material: i@banner[base_color=white;patterns=<script.yaml_key[pattern]>]
banner_R:
type: item
no_id: true
pattern:
- white/half_horizontal
- white/stripe_left
- white/stripe_downright
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_S:
type: item
no_id: true
pattern:
- white/stripe_bottom
- white/stripe_top
- black/rhombus_middle
- white/stripe_downright
- black/border
- black/curly_border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_T:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_center
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_U:
type: item
no_id: true
pattern:
- white/stripe_right
- white/stripe_bottom
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_V:
type: item
no_id: true
pattern:
- white/stripe_left
- black/square_bottom_left
- white/stripe_downleft
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_W:
type: item
no_id: true
pattern:
- white/triangle_bottom
- black/triangles_bottom
- white/stripe_right
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_X:
type: item
no_id: true
pattern:
- white/cross
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_Y:
type: item
no_id: true
pattern:
- white/stripe_downright
- black/square_bottom_right
- black/stripe_right
- white/stripe_downleft
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_Z:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_bottom
- white/stripe_downleft
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
# ----- UPERCASE LETTERS END ----- #
# ----- NUMBERS ----- #
banner_0:
type: item
no_id: true
pattern:
- black/rhombus_middle
- white/stripe_right
- white/stripe_downright
- white/stripe_left
- black/border
material: i@banner[base_color=white;patterns=<script.yaml_key[pattern]>]
banner_1:
type: item
no_id: true
pattern:
- white/square_top_left
- white/stripe_center
- white/stripe_bottom
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_2:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_left
- black/half_horizontal_mirror
- black/stripe_middle
- white/stripe_downleft
- white/stripe_bottom
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_3:
type: item
no_id: true
pattern:
- white/stripe_top
- white/stripe_middle
- white/stripe_bottom
- white/stripe_right
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_4:
type: item
no_id: true
pattern:
- white/stripe_left
- black/half_horizontal_mirror
- white/stripe_right
- white/stripe_middle
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_5:
type: item
no_id: true
pattern:
- white/stripe_bottom
- black/rhombus_middle
- white/stripe_top
- white/stripe_downright
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_6:
type: item
no_id: true
pattern:
- white/stripe_right
- black/half_horizontal
- white/stripe_top
- white/stripe_bottom
- white/stripe_middle
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_7:
type: item
no_id: true
pattern:
- white/half_vertical_mirror
- white/stripe_top
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_8:
type: item
no_id: true
pattern:
- white/stripe_right
- white/stripe_top
- white/stripe_bottom
- white/stripe_middle
- white/stripe_left
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
banner_9:
type: item
no_id: true
pattern:
- white/stripe_left
- black/half_horizontal_mirror
- white/stripe_top
- white/stripe_bottom
- white/stripe_middle
- white/stripe_right
- black/border
material: i@banner[base_color=black;patterns=<script.yaml_key[pattern]>]
# ----- PUNCTUATION END ----- #
# Resource: http://www.needcoolshoes.com/banner
# ----------------------------------------------- #
Banners_Version:
type: version
author: KeangDavid
name: Banners
- version: 1.5.3
+ version: 1.6.0
description: Banners made easy.
id: 39
-
-