Examples
/**
* @author Facuu16
* @version 1.0.1
*
* 11/11/23
* Made for versions 1.9 onwards
* Free use and modification!
*/
import("org.bukkit.event.block.Action");
import("org.bukkit.entity.EntityType");
import("org.bukkit.Effect");
import("org.bukkit.Sound");
import("org.bukkit.Material");
var weapon = API.newItemBuilder(API.getSkull("bb2abd66939f4cb7257a88cf52fbc6fdceec1433ec2a6ef16d62e34f6238781"))
.setName("&bWeapon")
.addLore("&8Right click &7to shoot!")
.build();
var options = {
visual: {
particle: Effect.COLOURED_DUST,
particleAmount: 1,
sound: Sound.ENTITY_FIREWORK_BLAST,
volume: 10,
pitch: 1.8
},
stats: {
damage: 5
}
};
function build(build) {
build.registerCommand(CommandInfo.builder()
.name("weapon")
.permission("mcjs.commands.weapon")
.usage("weapon <get>")
.target(CommandTarget.PLAYER)
.build(), function (context) {
var sender = context.getSender();
var arg = context.getArg(0);
if (arg == null) {
API.message(sender, "&cUsage: /weapon <get>");
return false;
}
switch (String(arg.toLowerCase())) {
case "get":
sender.getInventory().addItem(weapon);
break;
default:
API.message(sender, "&cUsage: /weapon <get>");
break;
}
return true;
});
build.registerListener("org.bukkit.event.player.PlayerInteractEvent", function (event) {
if (!event.getAction().equals(Action.RIGHT_CLICK_AIR))
return;
var player = event.getPlayer();
if (!player.getEquipment().getItemInMainHand().equals(weapon))
return;
var location = player.getLocation().clone();
var world = location.getWorld();
player.getWorld().playSound(location, options.visual.sound, options.visual.volume, options.visual.pitch);
location.setY(location.getY() + 1.1);
var vector = location.getDirection().multiply(0.35);
for (var i = 0; i < 40; i++) {
var current = location.add(vector);
var block = current.getBlock();
if (block == null)
continue;
if (block.getType() != Material.AIR)
break;
var entities = world.getNearbyEntities(current, 0.5, 0.5, 0.5);
if (entities.isEmpty()) {
world.playEffect(current, options.visual.particle, options.visual.particleAmount);
continue;
}
for (var i in entities) {
var entity = entities.get(i);
if (entity.getType() == EntityType.PLAYER && entity.getName().equals(player.getName()))
continue;
API.damage(entity, options.stats.damage);
}
}
});
build.registerListener("org.bukkit.event.block.BlockPlaceEvent", function (event) {
if (event.getPlayer().getEquipment().getItemInMainHand().equals(weapon))
event.setCancelled(true);
});
}
This script adds a customizable weapon. It can be used in versions 1.9 onwards (with modifications it can be compatible with previous versions). COMMANDS:
/weapon (mcjs.commands.weapon)
Last updated