首页 > 解决方案 > 重新登录后的盔甲架传送(Spigot)

问题描述

为什么我的盔甲架在重新登录到我的服务器后会传送?例如,重新登录前:https ://imgur.com/a/gQQcLb9,重新登录后: https ://imgur.com/a/xOeAJOz 。我正在努力做到这一点,以便一旦您右键单击骨头,盔甲架就会传送而无需重新登录。

这是我的主要代码:

package com.jason.sbitems;

import com.jason.sbitems.bows.Bonemerang;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;

public class SBItems extends JavaPlugin {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new Bonemerang(), this);
        ItemManager.init();
        getCommand("get").setExecutor(new GetCommand());
        getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "[SBItems Plugin]: Plugin is Enabled!");
    }

    @Override
    public void onDisable() {
        getServer().getConsoleSender().sendMessage(ChatColor.RED + "[SBItems Plugin]: Plugin is Disabled!");
    }
}

这是我的课程代码:

import org.bukkit.Material;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.EulerAngle;
import org.bukkit.util.Vector;

public class Bonemerang implements Listener {
    @EventHandler
    public static void onPlayerInteract(PlayerInteractEvent e) {
        Player p = e.getPlayer();

        if (e.getAction() == Action.RIGHT_CLICK_AIR) {
            if (p.getInventory().getItemInMainHand().equals(new ItemStack(Material.BONE))) {
                ArmorStand stand = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
                Vector teleportTo = p.getLocation().getDirection().normalize().multiply(10);

                stand.hasArms();
                stand.setGravity(false);
                stand.setItemInHand(new ItemStack(Material.BONE));
                stand.setRightArmPose(new EulerAngle(Math.toRadians(0), Math.toRadians(120), Math.toRadians(0)));
                stand.teleport(p.getLocation().add(teleportTo));
            }
        }
    }
}

另外,有没有办法让它在 10 秒后传送?

标签: javaminecraftbukkit

解决方案


推荐阅读