| 2 | create a firework at the given location |
| 3 | */ |
| 4 | function bukkitFirework(location) { |
| 5 | var bkColor = org.bukkit.Color; |
| 6 | var bkFireworkEffect = org.bukkit.FireworkEffect; |
| 7 | var bkEntityType = org.bukkit.entity.EntityType; |
| 8 | |
| 9 | var randInt = function(n) { |
| 10 | return Math.floor(Math.random() * n); |
| 11 | }; |
| 12 | var getColor = function(i) { |
| 13 | var colors = [ |
| 14 | bkColor.AQUA, |
| 15 | bkColor.BLACK, |
| 16 | bkColor.BLUE, |
| 17 | bkColor.FUCHSIA, |
| 18 | bkColor.GRAY, |
| 19 | bkColor.GREEN, |
| 20 | bkColor.LIME, |
| 21 | bkColor.MAROON, |
| 22 | bkColor.NAVY, |
| 23 | bkColor.OLIVE, |
| 24 | bkColor.ORANGE, |
| 25 | bkColor.PURPLE, |
| 26 | bkColor.RED, |
| 27 | bkColor.SILVER, |
| 28 | bkColor.TEAL, |
| 29 | bkColor.WHITE, |
| 30 | bkColor.YELLOW |
| 31 | ]; |
| 32 | return colors[i]; |
| 33 | }; |
| 34 | var fw = location.world.spawnEntity(location, bkEntityType.FIREWORK); |
| 35 | var fwm = fw.getFireworkMeta(); |
| 36 | var fwTypes = [ |
| 37 | bkFireworkEffect.Type.BALL, |
| 38 | bkFireworkEffect.Type.BALL_LARGE, |
| 39 | bkFireworkEffect.Type.BURST, |
| 40 | bkFireworkEffect.Type.CREEPER, |
| 41 | bkFireworkEffect.Type.STAR |
| 42 | ]; |
| 43 | var type = fwTypes[randInt(5)]; |
| 44 | |
| 45 | var r1i = randInt(17); |
| 46 | var r2i = randInt(17); |
| 47 | var c1 = getColor(r1i); |
| 48 | var c2 = getColor(r2i); |
| 49 | var effectBuilder = bkFireworkEffect |
| 50 | .builder() |
| 51 | .flicker(Math.round(Math.random()) == 0) |
| 52 | .withColor(c1) |
| 53 | .withFade(c2) |
| 54 | .trail(Math.round(Math.random()) == 0); |
| 55 | effectBuilder['with'](type); |
| 56 | var effect = effectBuilder.build(); |
| 57 | fwm.addEffect(effect); |
| 58 | fwm.setPower(randInt(2) + 1); |
| 59 | fw.setFireworkMeta(fwm); |
| 60 | } |
| 61 | module.exports = bukkitFirework; |