package [Link].
test1;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MercadoPlugin extends JavaPlugin {
private Economy economy = null;
@Override
public void onEnable() {
// Verifica se o Vault está presente e inicializa a economia
if (!setupEconomy()) {
getLogger().severe("Vault não encontrado. Desabilitando o plugin.");
getServer().getPluginManager().disablePlugin(this);
return;
}
getLogger().info("Mercado Plugin ativado com sucesso!");
}
@Override
public void onDisable() {
getLogger().info("Mercado Plugin desativado!");
}
/**
* Configura a economia usando Vault.
*
* @return true se a economia foi configurada corretamente.
*/
private boolean setupEconomy() {
RegisteredServiceProvider<Economy> rsp =
getServer().getServicesManager().getRegistration([Link]);
if (rsp == null) {
return false;
}
economy = [Link]();
return economy != null;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
if (!(sender instanceof Player)) {
[Link]("§cApenas jogadores podem usar este comando.");
return true;
}
Player player = (Player) sender;
if ([Link]().equalsIgnoreCase("mercado")) {
openMarketMenu(player);
return true;
}
if ([Link]().equalsIgnoreCase("vender")) {
if ([Link] != 1) {
[Link]("§cUso correto: /vender <preço>");
return true;
}
double price;
try {
price = [Link](args[0]);
} catch (NumberFormatException e) {
[Link]("§cPreço inválido!");
return true;
}
// Obtém o item que o jogador está segurando
ItemStack item = [Link](); // Compatível com 1.7.10
if (item == null || [Link]() == [Link]) {
[Link]("§cVocê precisa segurar um item para vendê-
lo!");
return true;
}
sellItem(player, item, price);
return true;
}
return false;
}
/**
* Abre o menu do mercado para o jogador.
*
* @param player o jogador que abriu o mercado.
*/
private void openMarketMenu(Player player) {
Inventory inv = [Link](null, 54, "§6Mercado");
// Exemplo de itens no menu
[Link](new ItemStack([Link], 1));
[Link](new ItemStack(Material.GOLD_INGOT, 1));
[Link](new ItemStack(Material.IRON_INGOT, 1));
[Link](inv);
}
/**
* Vende o item do jogador e adiciona dinheiro à conta dele.
*
* @param player o jogador que está vendendo o item.
* @param item o item a ser vendido.
* @param price o preço do item.
*/
private void sellItem(Player player, ItemStack item, double price) {
// Remove o item do inventário do jogador
[Link]().removeItem(item);
// Adiciona dinheiro à conta do jogador
[Link](player, price);
// Mensagem de sucesso
[Link]("§aVocê vendeu " + [Link]() + " " +
[Link]().name() + " por §e" + price + "§a!");
}
}