Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Jak używać essential economi API?


h0w.

Rekomendowane odpowiedzi

Opublikowano

Witam, otóż to mam taki kod:

 

 

Klasa Main:

package pl.marosking.drop;


import org.bukkit.plugin.java.JavaPlugin;


public class Main 
extends JavaPlugin
{


@Override
public void onEnable() {
System.out.println("[DropPlugin] Zostal wlaczony!");
getServer().getPluginManager().registerEvents(new DropListener(this), this);
}
}

Klasa DropListener:

package pl.marosking.drop;


import java.util.Random;


import org.apache.commons.lang.Validate;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.inventory.ItemStack;


import com.earth2me.essentials.api.Economy;
import com.earth2me.essentials.api.NoLoanPermittedException;
import com.earth2me.essentials.api.UserDoesNotExistException;


public class DropListener 
implements Listener
{
Main plugin;


public DropListener(Main plugin) { }


Random rand = new Random();
    
    public double getRandomDouble(double min, double max) throws IllegalArgumentException{
            Validate.isTrue(max > min, "Max nie moze byc mniejszy niz min");
            return (rand.nextDouble() * (max - min) + min);
    }
   
    public boolean getChance(double chance){
            return (chance >= 100 || (chance >= getRandomDouble(0, 100)));
    }
   
    @SuppressWarnings("deprecation")
    public void dodaj(String name , double d) throws NoLoanPermittedException, UserDoesNotExistException{
            Economy.add(name, d);
    }
            
    @EventHandler
    public void onBreak(BlockBreakEvent e) throws NoLoanPermittedException, UserDoesNotExistException {
            Player p = e.getPlayer();
            Block b = e.getBlock();
           
            if(b.getType() == Material.STONE){
                    if(b.getLocation().getBlockY() <= 64){
                            if(p.getGameMode() == GameMode.SURVIVAL){
                                    if(getChance(100)){
                                            b.getWorld().dropItemNaturally(b.getLocation(), new ItemStack(Material.IRON_INGOT, 1));
                                            dodaj(p.getName(), 10);
                                            p.sendMessage(ChatColor.GRAY + "Znalazles zelazo  [+10]");
                                    }
                            }
                    }
                    if(b.getLocation().getBlockY() <= 24){
                            if(getChance(25)){
                                    b.getWorld().dropItemNaturally(b.getLocation(), new ItemStack(Material.DIAMOND, 1));
                                    p.sendMessage(ChatColor.AQUA + "Znalazles diament :D");
                            }
                    }
                    if(b.getLocation().getBlockY() <= 30){
                            if(p.getItemInHand().getType() == Material.DIAMOND_PICKAXE){
                                    if(p.getItemInHand().getItemMeta().getEnchants().containsKey(Enchantment.LOOT_BONUS_BLOCKS)){
                                            if(p.getItemInHand().getItemMeta().getEnchantLevel(Enchantment.LOOT_BONUS_BLOCKS) == 3){
                                                    if(getChance(50)){
                                                            int goldAmount = rand.nextInt(3) + 1;
                                                           
                                                            b.getWorld().dropItemNaturally(b.getLocation(), new ItemStack(Material.GOLD_INGOT, goldAmount));
                                                    }
                                            }
                                    }
                            }
                    }
            }
            if(b.getType() == Material.IRON_ORE || b.getType() == Material.DIAMOND_ORE){
                    b.setType(Material.AIR);
                    p.sendMessage(ChatColor.GOLD + "Jest drop ze stone :D");
            }
    }
}

 

I teraz moje pytanie brzmi czy dobrze użyłem tego API?

 

    @EventHandler
    public void onBreak(BlockBreakEvent e) throws NoLoanPermittedException, UserDoesNotExistException {
            Player p = e.getPlayer();
            Block b = e.getBlock();
           
            if(b.getType() == Material.STONE){
                    if(b.getLocation().getBlockY() <= 64){
                            if(p.getGameMode() == GameMode.SURVIVAL){
                                    if(getChance(100)){
                                            b.getWorld().dropItemNaturally(b.getLocation(), new ItemStack(Material.IRON_INGOT, 1));
                                            dodaj(p.getName(), 10);
                                            p.sendMessage(ChatColor.GRAY + "Znalazles zelazo  [+10]");
                                    }
                            }
                    }

 

 

A tutaj w dodatku wyskakuje mi error przy włączaniu konsoli:

4670414147715541257249.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...