Use adventure components instead of legacy strings (#6)

* Update Paper API

* Replace legacy message strings with components

* Compile with Java 17

* Fix italic text
This commit is contained in:
Chip 2022-11-04 22:10:41 +00:00 committed by GitHub
parent 714f1b3cd8
commit 440dc4091c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 123 additions and 70 deletions

View File

@ -15,7 +15,7 @@ jobs:
- uses: actions/setup-java@v2 - uses: actions/setup-java@v2
with: with:
distribution: 'temurin' distribution: 'temurin'
java-version: 8 java-version: 17
- name: Cache maven packages to speed up build - name: Cache maven packages to speed up build
uses: actions/cache@v1 uses: actions/cache@v1

View File

@ -5,17 +5,18 @@
<version>master</version> <version>master</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<maven.test.skip>true</maven.test.skip> <maven.test.skip>true</maven.test.skip>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.destroystokyo.paper</groupId> <groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId> <artifactId>paper-api</artifactId>
<version>1.13.2-R0.1-SNAPSHOT</version> <version>1.18.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -11,12 +11,16 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class CommandWeapons implements CommandExecutor { public final class CommandWeapons implements CommandExecutor {
private void addWeapon(final Inventory inventory, final Material material, final String name) { private void addWeapon(final Inventory inventory, final Material material,
final Component name) {
final ItemStack item = new ItemStack(material, 1); final ItemStack item = new ItemStack(material, 1);
final ItemMeta itemMeta = item.getItemMeta(); final ItemMeta itemMeta = item.getItemMeta();
itemMeta.setDisplayName(name); itemMeta.displayName(name);
item.setItemMeta(itemMeta); item.setItemMeta(itemMeta);
inventory.addItem(item); inventory.addItem(item);
} }
@ -25,21 +29,31 @@ public final class CommandWeapons implements CommandExecutor {
public boolean onCommand(final CommandSender sender, final Command cmd, final String label, public boolean onCommand(final CommandSender sender, final Command cmd, final String label,
final String[] args) { final String[] args) {
if (sender instanceof ConsoleCommandSender) { if (sender instanceof ConsoleCommandSender) {
sender.sendMessage("Command has to be run by a player"); sender.sendMessage(Component.text("Command has to be run by a player"));
} else { } else {
final Player player = (Player) sender; final Player player = (Player) sender;
final Inventory inventory = Bukkit.createInventory(null, 18, "Weapons"); final Inventory inventory = Bukkit.createInventory(null, 18, Component.text("Weapons"));
addWeapon(inventory, Material.ANVIL, "§rAnvil Dropper"); addWeapon(inventory, Material.ANVIL, Component.text("Anvil Dropper")
addWeapon(inventory, Material.SPECTRAL_ARROW, "§rArcher"); .decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.FIRE_CHARGE, "§rArmageddon"); addWeapon(inventory, Material.SPECTRAL_ARROW, Component.text("Archer")
addWeapon(inventory, Material.MAGMA_CREAM, "§rBlobinator"); .decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.EGG, "§rGrenade"); addWeapon(inventory, Material.FIRE_CHARGE, Component.text("Armageddon")
addWeapon(inventory, Material.BLAZE_POWDER, "§rLaser"); .decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.STICK, "§rLightning Stick"); addWeapon(inventory, Material.MAGMA_CREAM, Component.text("Blobinator")
addWeapon(inventory, Material.GOLDEN_HORSE_ARMOR, "§rMachine Gun"); .decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.BLAZE_ROD, "§rNuker"); addWeapon(inventory, Material.EGG, Component.text("Grenade")
addWeapon(inventory, Material.IRON_HORSE_ARMOR, "§rSniper"); .decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.BLAZE_POWDER, Component.text("Laser")
.decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.STICK, Component.text("Lightning Stick")
.decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.GOLDEN_HORSE_ARMOR, Component.text("Machine Gun")
.decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.BLAZE_ROD, Component.text("Nuker")
.decoration(TextDecoration.ITALIC, false));
addWeapon(inventory, Material.IRON_HORSE_ARMOR, Component.text("Sniper")
.decoration(TextDecoration.ITALIC, false));
player.openInventory(inventory); player.openInventory(inventory);
} }
return true; return true;

View File

@ -6,20 +6,26 @@ import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import net.kyori.adventure.text.Component;
public final class PlayerReceiveWeapon implements Listener { public final class PlayerReceiveWeapon implements Listener {
@EventHandler @EventHandler
void onInventoryClick(final InventoryClickEvent event) { void onInventoryClick(final InventoryClickEvent event) {
if (event.isCancelled() || !"Weapons".equals(event.getView().getTitle())) { if (event.isCancelled() || !Component.text("Weapons").equals(event.getView().title())) {
return; return;
} }
final ItemStack item = event.getCurrentItem(); final ItemStack item = event.getCurrentItem();
final String weaponName = item.getItemMeta().getDisplayName().toLowerCase(); final Component weaponName = item.getItemMeta().displayName();
final Player player = (Player) event.getWhoClicked(); final Player player = (Player) event.getWhoClicked();
player.getInventory().addItem(item); player.getInventory().addItem(item);
player.closeInventory(); player.closeInventory();
player.sendMessage("You have received the " + weaponName + "!"); player.sendMessage(
Component.text("You have received the ")
.append(weaponName)
.append(Component.text("!"))
);
} }
} }

View File

@ -7,6 +7,8 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import net.kyori.adventure.text.Component;
import pw.kaboom.weapons.modules.weapons.WeaponAnvilDropper; import pw.kaboom.weapons.modules.weapons.WeaponAnvilDropper;
import pw.kaboom.weapons.modules.weapons.WeaponArcher; import pw.kaboom.weapons.modules.weapons.WeaponArcher;
import pw.kaboom.weapons.modules.weapons.WeaponArmageddon; import pw.kaboom.weapons.modules.weapons.WeaponArmageddon;
@ -26,10 +28,10 @@ public final class PlayerUseWeapon implements Listener {
return; return;
} }
String name = ""; Component name = Component.empty();
try { try {
name = event.getItem().getItemMeta().getDisplayName(); name = event.getItem().getItemMeta().displayName();
} catch (Exception ignored) { } catch (Exception ignored) {
return; return;
} }

View File

@ -5,14 +5,17 @@ import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponAnvilDropper { public final class WeaponAnvilDropper {
private WeaponAnvilDropper() { private WeaponAnvilDropper() {
} }
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.ANVIL if (item == Material.ANVIL && Component.text("Anvil Dropper")
&& ("§rAnvil Dropper".equals(name) || "Anvil Dropper".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final int min = -2; final int min = -2;
final int max = 2; final int max = 2;

View File

@ -16,11 +16,14 @@ import org.bukkit.util.Vector;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent; import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponArcher implements Listener { public final class WeaponArcher implements Listener {
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.SPECTRAL_ARROW if (item == Material.SPECTRAL_ARROW && Component.text("Archer")
&& ("§rArcher".equals(name) || "Archer".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final World world = player.getWorld(); final World world = player.getWorld();
@ -40,7 +43,7 @@ public final class WeaponArcher implements Listener {
player.getLocation(), player.getLocation(),
EntityType.SPECTRAL_ARROW EntityType.SPECTRAL_ARROW
); );
arrow.setCustomName("WeaponArcherArrow"); arrow.customName(Component.text("WeaponArcherArrow"));
arrow.setShooter(player); arrow.setShooter(player);
arrow.setVelocity(randomDirection); arrow.setVelocity(randomDirection);
} }
@ -65,7 +68,7 @@ public final class WeaponArcher implements Listener {
if (event.getEntityType() == EntityType.SPECTRAL_ARROW) { if (event.getEntityType() == EntityType.SPECTRAL_ARROW) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponArcherArrow".equals(projectile.getCustomName())) { if (Component.text("WeaponArcherArrow").equals(projectile.customName())) {
final Entity collidedWith = event.getCollidedWith(); final Entity collidedWith = event.getCollidedWith();
if (collidedWith.getType() == EntityType.PLAYER if (collidedWith.getType() == EntityType.PLAYER

View File

@ -16,11 +16,14 @@ import org.bukkit.util.Vector;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent; import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponArmageddon implements Listener { public final class WeaponArmageddon implements Listener {
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.FIRE_CHARGE if (item == Material.FIRE_CHARGE && Component.text("Armageddon")
&& ("§rArmageddon".equals(name) || "Armageddon".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final World world = player.getWorld(); final World world = player.getWorld();
@ -43,7 +46,7 @@ public final class WeaponArmageddon implements Listener {
); );
fireball.setBounce(false); fireball.setBounce(false);
fireball.setCustomName("WeaponArmegaddonCharge"); fireball.customName(Component.text("WeaponArmegaddonCharge"));
fireball.setDirection(velocity); fireball.setDirection(velocity);
fireball.setShooter(player); fireball.setShooter(player);
fireball.setYield(yield); fireball.setYield(yield);
@ -70,7 +73,7 @@ public final class WeaponArmageddon implements Listener {
if (event.getEntityType() == EntityType.FIREBALL) { if (event.getEntityType() == EntityType.FIREBALL) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponArmegaddonCharge".equals(projectile.getCustomName())) { if (Component.text("WeaponArmegaddonCharge").equals(projectile.customName())) {
final Entity collidedWith = event.getCollidedWith(); final Entity collidedWith = event.getCollidedWith();
if ((collidedWith.getType() == EntityType.PLAYER if ((collidedWith.getType() == EntityType.PLAYER

View File

@ -20,19 +20,22 @@ import org.bukkit.util.Vector;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent; import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
import pw.kaboom.weapons.Main; import pw.kaboom.weapons.Main;
public final class WeaponBlobinator implements Listener { public final class WeaponBlobinator implements Listener {
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.MAGMA_CREAM if (item == Material.MAGMA_CREAM && Component.text("Blobinator")
&& ("§rBlobinator".equals(name) || "Blobinator".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final Location eyeLocation = player.getEyeLocation(); final Location eyeLocation = player.getEyeLocation();
final Vector velocity = eyeLocation.getDirection().multiply(8); final Vector velocity = eyeLocation.getDirection().multiply(8);
final Snowball snowball = player.launchProjectile(Snowball.class); final Snowball snowball = player.launchProjectile(Snowball.class);
snowball.setCustomName("WeaponBlobinatorBall"); snowball.customName(Component.text("WeaponBlobinatorBall"));
snowball.setShooter(player); snowball.setShooter(player);
snowball.setVelocity(velocity); snowball.setVelocity(velocity);
@ -74,7 +77,7 @@ public final class WeaponBlobinator implements Listener {
if (event.getEntityType() == EntityType.SNOWBALL) { if (event.getEntityType() == EntityType.SNOWBALL) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponBlobinatorBall".equals(projectile.getCustomName())) { if (Component.text("WeaponBlobinatorBall").equals(projectile.customName())) {
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -87,7 +90,7 @@ public final class WeaponBlobinator implements Listener {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if (hitBlock != null if (hitBlock != null
&& "WeaponBlobinatorBall".equals(projectile.getCustomName())) { && Component.text("WeaponBlobinatorBall").equals(projectile.customName())) {
final int radius = 4; final int radius = 4;
final World world = projectile.getWorld(); final World world = projectile.getWorld();
final Material color = Main.getColors().get( final Material color = Main.getColors().get(

View File

@ -14,18 +14,21 @@ import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.event.player.PlayerEggThrowEvent; import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponGrenade implements Listener { public final class WeaponGrenade implements Listener {
public static void rightClick(final Material item, final String name, public static void rightClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.EGG if (item == Material.EGG && Component.text("Grenade")
&& ("§rGrenade".equals(name) || "Grenade".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
event.setCancelled(true); event.setCancelled(true);
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final Location eyeLocation = player.getEyeLocation(); final Location eyeLocation = player.getEyeLocation();
final Egg egg = player.launchProjectile(Egg.class); final Egg egg = player.launchProjectile(Egg.class);
egg.setCustomName("WeaponGrenade"); egg.customName(Component.text("WeaponGrenade"));
egg.setShooter(player); egg.setShooter(player);
final World world = player.getWorld(); final World world = player.getWorld();
@ -43,7 +46,7 @@ public final class WeaponGrenade implements Listener {
@EventHandler @EventHandler
private void onPlayerEggThrow(final PlayerEggThrowEvent event) { private void onPlayerEggThrow(final PlayerEggThrowEvent event) {
if ("WeaponGrenade".equals(event.getEgg().getCustomName())) { if (Component.text("WeaponGrenade").equals(event.getEgg().customName())) {
event.setHatching(false); event.setHatching(false);
} }
} }
@ -53,7 +56,7 @@ public final class WeaponGrenade implements Listener {
if (event.getEntityType() == EntityType.EGG) { if (event.getEntityType() == EntityType.EGG) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponGrenade".equals(projectile.getCustomName())) { if (Component.text("WeaponGrenade").equals(projectile.customName())) {
final Location location = projectile.getLocation(); final Location location = projectile.getLocation();
final World world = location.getWorld(); final World world = location.getWorld();
final float power = 6; final float power = 6;

View File

@ -13,14 +13,17 @@ import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.util.BlockIterator; import org.bukkit.util.BlockIterator;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponLaser { public final class WeaponLaser {
private WeaponLaser() { private WeaponLaser() {
} }
public static void rightClick(final Material item, final String name, public static void rightClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.BLAZE_POWDER if (item == Material.BLAZE_POWDER && Component.text("Laser")
&& ("§rLaser".equals(name) || "Laser".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final Location eyeLocation = player.getEyeLocation(); final Location eyeLocation = player.getEyeLocation();
final Vector direction = eyeLocation.getDirection(); final Vector direction = eyeLocation.getDirection();

View File

@ -7,14 +7,17 @@ import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponLightningStick { public final class WeaponLightningStick {
private WeaponLightningStick() { private WeaponLightningStick() {
} }
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.STICK if (item == Material.STICK && Component.text("Lightning Stick")
&& ("§rLightning Stick".equals(name) || "Lightning Stick".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final int maxDistance = 100; final int maxDistance = 100;
final Location lookLocation = event.getPlayer().getTargetBlock( final Location lookLocation = event.getPlayer().getTargetBlock(
(Set<Material>) null, maxDistance).getLocation(); (Set<Material>) null, maxDistance).getLocation();

View File

@ -25,15 +25,18 @@ import org.bukkit.util.Vector;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent; import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
import pw.kaboom.weapons.Main; import pw.kaboom.weapons.Main;
public final class WeaponMachineGun implements Listener { public final class WeaponMachineGun implements Listener {
private static HashSet<UUID> machineGunActive = new HashSet<UUID>(); private static HashSet<UUID> machineGunActive = new HashSet<UUID>();
public static void rightClick(final Material item, final String name, public static void rightClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.GOLDEN_HORSE_ARMOR if (item == Material.GOLDEN_HORSE_ARMOR && Component.text("Machine Gun")
&& ("§rMachine Gun".equals(name) || "Machine Gun".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final UUID playerUUID = event.getPlayer().getUniqueId(); final UUID playerUUID = event.getPlayer().getUniqueId();
if (!machineGunActive.contains(playerUUID)) { if (!machineGunActive.contains(playerUUID)) {
@ -52,7 +55,7 @@ public final class WeaponMachineGun implements Listener {
final Arrow arrow = player.launchProjectile(Arrow.class); final Arrow arrow = player.launchProjectile(Arrow.class);
arrow.setCustomName("WeaponMachineGunBullet"); arrow.customName(Component.text("WeaponMachineGunBullet"));
arrow.setShooter(player); arrow.setShooter(player);
arrow.setVelocity(velocity); arrow.setVelocity(velocity);
@ -86,7 +89,7 @@ public final class WeaponMachineGun implements Listener {
if (event.getEntityType() == EntityType.ARROW) { if (event.getEntityType() == EntityType.ARROW) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponMachineGunBullet".equals(projectile.getCustomName())) { if (Component.text("WeaponMachineGunBullet").equals(projectile.customName())) {
final Entity collidedWith = event.getCollidedWith(); final Entity collidedWith = event.getCollidedWith();
if (collidedWith.getType() == EntityType.PLAYER if (collidedWith.getType() == EntityType.PLAYER
@ -119,7 +122,7 @@ public final class WeaponMachineGun implements Listener {
if (event.getEntityType() == EntityType.ARROW) { if (event.getEntityType() == EntityType.ARROW) {
final Projectile projectile = event.getEntity(); final Projectile projectile = event.getEntity();
if ("WeaponMachineGunBullet".equals(projectile.getCustomName())) { if (Component.text("WeaponMachineGunBullet").equals(projectile.customName())) {
projectile.remove(); projectile.remove();
} }
} }

View File

@ -9,14 +9,17 @@ import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponNuker { public final class WeaponNuker {
private WeaponNuker() { private WeaponNuker() {
} }
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.BLAZE_ROD if (item == Material.BLAZE_ROD && Component.text("Nuker")
&& ("§rNuker".equals(name) || "Nuker".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final Location eyeLocation = player.getEyeLocation(); final Location eyeLocation = player.getEyeLocation();
final Vector velocity = eyeLocation.getDirection().multiply(10); final Vector velocity = eyeLocation.getDirection().multiply(10);

View File

@ -11,14 +11,17 @@ import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
public final class WeaponSniper { public final class WeaponSniper {
private WeaponSniper() { private WeaponSniper() {
} }
public static void leftClick(final Material item, final String name, public static void leftClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.IRON_HORSE_ARMOR if (item == Material.IRON_HORSE_ARMOR && Component.text("Sniper")
&& ("§rSniper".equals(name) || "Sniper".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final Location eyeLocation = player.getEyeLocation(); final Location eyeLocation = player.getEyeLocation();
final Vector velocity = eyeLocation.getDirection().multiply(12); final Vector velocity = eyeLocation.getDirection().multiply(12);
@ -41,10 +44,10 @@ public final class WeaponSniper {
} }
} }
public static void rightClick(final Material item, final String name, public static void rightClick(final Material item, final Component name,
final PlayerInteractEvent event) { final PlayerInteractEvent event) {
if (item == Material.IRON_HORSE_ARMOR if (item == Material.IRON_HORSE_ARMOR && Component.text("Sniper")
&& ("§rSniper".equals(name) || "Sniper".equals(name))) { .decoration(TextDecoration.ITALIC, false).equals(name)) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
if (player.hasPotionEffect(PotionEffectType.SLOW)) { if (player.hasPotionEffect(PotionEffectType.SLOW)) {