Getting Errors but Dont Understand why

Discussion in 'Plugin Development' started by snake4212, Jul 4, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    snake4212

    My code
    Show Spoiler

    Code:
    package de.wrenchbox.test;
     
    import java.util.UUID;
     
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Egg;
    import org.bukkit.entity.LargeFireball;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Snowball;
    import org.bukkit.entity.WitherSkull;
    import org.bukkit.inventory.ItemStack;
     
    public enum Ability {
    FIREBALL,
    ARROW,
    CREEPER,
    GUN,
    THUNDER,
    HEAL,
    SHOTGUN,
    AUTOMATIC;
     
    Ability a;
     
    private Ability() {
    this.a = this;
    }
     
    public String getName() {
    switch(a) {
    case FIREBALL:
    return "Fire Ball";
    case ARROW:
    return "Explosive Dart";
    case CREEPER:
    return "Creepy";
    case GUN:
    return "Snow Gun";
    case THUNDER:
    return "Thunder";
    case HEAL:
    return "Instant Health";
    case SHOTGUN:
    return "Shotgun";
    case AUTOMATIC:
    return "Automatic Gun";
    }
    return null;
    }
     
    public static Ability check(ItemStack is) {
    for(Ability a : Ability.values()) {
    String name = a.getName();
    if(is.getItemMeta().hasDisplayName() && ChatColor.stripColor(is.getItemMeta().getDisplayName()).equals(name)) {
    return a;
    }
    }
    return null;
    }
     
    public UUID fire(Player player) {
    switch(a) {
    case FIREBALL:
    player.launchProjectile(LargeFireball.class);
    return null;
    case ARROW:
    return player.launchProjectile(Arrow.class).getUniqueId();
    case CREEPER:
    return player.launchProjectile(Egg.class).getUniqueId();
    case GUN:
    return player.launchProjectile(Snowball.class).getUniqueId();
    case THUNDER:
    return player.launchProjectile(WitherSkull.class).getUniqueId();
    case HEAL:
    player.setHealth(player.getMaxHealth());
    return null;
    case SHOTGUN:
    return player.launchProjectile(Snowball.class).getUniqueId();
    case AUTOMATIC:
    return player.launchProjectile(Snowball.class).getUniqueId();
    }
    return null;
    }
     
    public int getCooldown() {
    float cd = 0;
    switch (a) {
    case FIREBALL:
    cd = 3;
    break;
    case ARROW:
    cd = 4;
    break;
    case CREEPER:
    cd = 5;
    break;
    case GUN:
    cd = 0.75f;
    break;
    case THUNDER:
    cd = 10;
    break;
    case HEAL:
    cd = 45;
    break;
    case SHOTGUN:
    cd = 0.5f;
    break;
    case AUTOMATIC:
    cd = 0;
    break;
    }
    return Math.round(cd*1000);
    }
     
    }
    
    I get an error on getMaxHealth
    Here is the other code with errors
    Code:
    package de.wrenchbox.test;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.UUID;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Egg;
    import org.bukkit.entity.EnderPearl;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Projectile;
    import org.bukkit.entity.Snowball;
    import org.bukkit.entity.WitherSkull;
    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.entity.PlayerDeathEvent;
    import org.bukkit.event.entity.ProjectileHitEvent;
    import org.bukkit.event.entity.ProjectileLaunchEvent;
    import org.bukkit.event.player.PlayerDropItemEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.util.Vector;
    public class PlayerListener implements Listener {
     
    private HashMap<Ability, HashMap<String, Long>> abilities = new HashMap<Ability, HashMap<String,Long>>();
    private ArrayList<UUID> ids = new ArrayList<UUID>();
    public PlayerListener() {
    TestPlugin.getPlugin().getServer().getPluginManager().registerEvents(this, TestPlugin.getPlugin());
    for(Ability a : Ability.values()) {
    abilities.put(a, new HashMap<String, Long>());
    }
    }
    @EventHandler
    public void onInteract(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    if(event.getAction() != Action.RIGHT_CLICK_AIR) {
    if(event.getItem() != null && Ability.check1(event.getItem()) != null && Ability.check(event.getItem()) != Ability.HEAL) {
    event.setCancelled(true);
    }
    return;
    }
     
    Ability a = null;
    if((a = Ability.check(event.getItem())) != null) {
    event.setCancelled(true);
    if(abilities.get(a).get(player.getName()) == null || abilities.get(a).get(player.getName()) + a.getCooldown() < System.currentTimeMillis()) { // if the ability is NOT on cooldown
    event.setCancelled(true);
    if(a != Ability.HEAL || player.getMaxHealth()-player.getHealth() > 1) {
    abilities.get(a).put(player.getName(), System.currentTimeMillis());
    for(int i = 0; i < (a == Ability.SHOTGUN ? 5 : 1); i++) {
    UUID id = a.fire(player);
    if(id != null) {
    ids.add(id);
    }
    }
    }
    } else { // if on cooldown
    long wait = abilities.get(a).get(player.getName()) + a.getCooldown() - System.currentTimeMillis();
    player.sendMessage(String.format(ChatColor.RED+a.name()+" is on cooldown: "+"%.2f"+" seconds", wait/1000.0));
    }
    }
    }
    @EventHandler
    public void onEntityHitEvent(ProjectileHitEvent event) {
    Projectile projectile = event.getEntity();
    if(ids.contains(projectile.getUniqueId())) {
    if(projectile instanceof Arrow) {
    ids.remove(projectile.getUniqueId());
    projectile.getWorld().createExplosion(projectile.getLocation(), 3f);
    } else if(projectile instanceof Egg) {
    ids.remove(projectile.getUniqueId());
    projectile.getWorld().spawnEntity(projectile.getLocation(), EntityType.CREEPER);
    } else if(projectile instanceof WitherSkull) {
    projectile.getWorld().strikeLightning(projectile.getLocation());
    }
     
    projectile.remove();
    }
    }
    @SuppressWarnings({ "deprecation" })
    @EventHandler
    public void onProjectileHit(EntityDamageByEntityEvent event) {
    Entity entity = event.getDamager();
    if((entity instanceof Snowball || entity instanceof Egg || entity instanceof EnderPearl) && ids.contains(entity.getUniqueId())) {
    ids.remove(entity.getUniqueId());
    event.setDamage(1);
    }
    }
    @EventHandler
    public void onProjectileLaunch(ProjectileLaunchEvent event) {
    Projectile projectile = event.getEntity();
    if(projectile instanceof Snowball && projectile.getShooter() instanceof Player) {
    Player player = (Player) projectile.getShooter();
    if(Ability.check(player.getItemInHand()) == Ability.SHOTGUN) {
    Vector v = projectile.getVelocity();
    float amp = 0.5f;
    v.add(new Vector(
    amp/2-Math.random()*amp,
    amp/2-Math.random()*amp,
    amp/2-Math.random()*amp
    ));
    System.out.println(v);
    projectile.setVelocity(v);
    }
    }
    }
    @EventHandler
    public void onDeath(PlayerDeathEvent event) {
    event.getDrops().clear();
    }
    @EventHandler
    public void onDrop(PlayerDropItemEvent event) {
    if(Ability.check(event.getItemDrop().getItemStack()) != null) {
    event.setCancelled(true);
    }
    }
    }
    
    I get errors on the Health things again and I get errors on getPlugin please explain why there are errors and help me fix them dont just go oh yea its this and thats ur reply please I really need help
     
  2. Offline

    afistofirony

    Stack trace please?
     
  3. Offline

    snake4212

    Stack trace?

    Do you mean in the main class?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  4. Offline

    cummo15

  5. Offline

    snake4212

    Last edited by a moderator: Jun 3, 2016
Thread Status:
Not open for further replies.

Share This Page