- Баллы
- 76
- Имя в Minecraft
- Solomka
Пишу плагин на админский лук , но это не суть дайте намек, как сделать код на выстрел fireball из лука, который был сделан в верстаке
код:
код:
Код:
package bow.main;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.*********ventory.ItemStack;
import org.*********ventory.ShapedRecipe;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class SecretBow extends JavaPlugin implements Listener {
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
getLogger().info("SecretBow is enable");
getCommand("abreload").setExecutor(new BowReload(this));
File config = new File(getDataFolder() + File.separator + "config.yml");
if (!config.exists()) {
getLogger().info("Creating new file config...");
getConfig().options().copyDefaults(true);
saveDefaultConfig();
}
}
public void onDisable() {
getLogger().info("SecretBow is disable");
}
@SuppressWarnings("unused")
private void craft() {
ItemStack item = new ItemStack (Material.BOW);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.DARK_RED + "Лук дьявола");
List<String> lore = new ArrayList<String>();
lore.add("Лук дьявола");
meta.setLore(lore);
meta.addEnchant(Enchantment.ARROW_DAMAGE, 20, true);
item.setItemMeta(meta);
NamespacedKey key = new NamespacedKey(this, "demon_bow");
ShapedRecipe s = new ShapedRecipe(key, item);
s.shape(new String[]{"AAA", "B B", " B "});
s.setIngredient('A', Material.FIREBALL);
s.setIngredient('B', Material.STICK);
Bukkit.getServer().addRecipe(s);
}
@EventHandler
public void onArrowHit(EntityDamageByEntityEvent event) {
if (!(event.getDamager() instanceof Arrow))
return;
if (!(event.getEntity() instanceof Player))
return;
if (event.getDamager() instanceof Arrow) {
Arrow a = (Arrow) event.getDamager();
if (event.getDamager() instanceof Player) {
if (!((Player) a.getShooter()).isOp() && !((Player) a.getShooter()).hasPermission("AdminBow.Use"))
return;
}
if (((Player) a.getShooter()).isOp() && ((Player) a.getShooter()).hasPermission("AdminBow.Use")) {
Arrow a1 = (Arrow) event.getDamager();
Player d = (Player) a1.getShooter();
Player p = (Player) event.getEntity();
String cmd = getConfig().getString("commands") + p.getName();
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
d.sendMessage(ChatColor.GRAY + "[" + ChatColor.GOLD + "AdminBow" + ChatColor.GRAY + "] "
+ ChatColor.BLUE + "Вы успешно выполнили команду " + ChatColor.GREEN + ChatColor.GRAY + "<"
+ "/" + cmd + ChatColor.GRAY + ">" + ChatColor.BLUE + " над игроком " + p.getName());
p.sendMessage(ChatColor.GRAY + "[" + ChatColor.GOLD + "AdminBow" + ChatColor.GRAY + "] "
+ "Над вами было совершенно действие " + cmd + ChatColor.GRAY + "\n[" + ChatColor.GOLD
+ "AdminBow" + ChatColor.GRAY + "] " + " Администратором: " + d.getName());
}
}
}
}