-1
我做了一个插件,增加了表彰/staffwands
。它会给一个棒,这是一个工作人员。这是一个魔杖插件。Bukkit员工魔杖插件
但是我想确保如果游戏中的普通玩家只是拿到一根棍子,它不会是一根魔杖,只有当你做/staffwands
时它才是魔杖。我已经用权限和魔杖制作了一堂课,我只需要帮助。下面是代码,如果你能有什么建议帮助,那将是巨大的:
package me.capz.stick;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.EntityEffect;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Egg;
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.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class stick extends JavaPlugin implements Listener {
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if(cmd.getName().equalsIgnoreCase("StaffWand")) {
if(!sender.hasPermission("StaffWand.staff")) {
sender.sendMessage(ChatColor.RED + "Only Staff can use this!");
if(sender.hasPermission("StaffWand.staff")) {
sender.sendMessage(ChatColor.GREEN + "Here is your staff wand!");
ItemStack item = new ItemStack(Material.STICK);
((Player)sender).getInventory().addItem(item); return true;
}
}
}
return false;
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
Player player = e.getPlayer();
if (!(e.getAction() == Action.RIGHT_CLICK_AIR)) return;
if (!(e.getItem().getType() == Material.STICK)) return;
Egg egg = e.getPlayer().launchProjectile(Egg.class);
egg.setFireTicks(20);
if(!(player.getInventory().contains(Material.MAGMA_CREAM)))return;
player.getInventory().removeItem(new ItemStack(Material.MAGMA_CREAM));
if(!player.getInventory().contains(Material.MAGMA_CREAM))return;
player.sendMessage("Magma_Cream needed!");
egg.setBounce(true);
egg.playEffect(EntityEffect.HURT);
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Egg) {
Egg egg = (Egg) e.getDamager();
if (egg.getShooter() instanceof Player) {
Player shooter = (Player) egg.getShooter();
if (shooter.getItemInHand().getType() == Material.STICK) {
e.setDamage(10.0);
}
}
}
}
}
我通过选择代码然后使用ctrl-K将代码移入代码块中。还从代码示例中删除了一堆空行。 – 2015-04-04 14:20:17
我没有得到你的onComand():在'!sender.hasPermission()'里面放置'sender.hasPermission()'。这是没有意义的。 – thekiwi5000 2015-04-08 10:17:08