added Koule zábavného sklízení

dev
jakub 2 years ago
parent ba8ff6b828
commit b7f9e32bfe
  1. 6
      src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java
  2. 31
      src/main/java/xyz/mineconomia/mineconomiacore/commands/funHarvestBall.java
  3. 72
      src/main/java/xyz/mineconomia/mineconomiacore/handlers/FHBHandler.java
  4. 2
      src/main/resources/plugin.yml

@ -1,15 +1,19 @@
package xyz.mineconomia.mineconomiacore;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import xyz.mineconomia.mineconomiacore.CustomItems.ItemManager;
import xyz.mineconomia.mineconomiacore.commands.BookCommand;
import xyz.mineconomia.mineconomiacore.commands.funHarvestBall;
import xyz.mineconomia.mineconomiacore.commands.mcore;
import xyz.mineconomia.mineconomiacore.commands.tpw;
import xyz.mineconomia.mineconomiacore.handlers.FHBHandler;
import java.util.Objects;
import java.util.logging.Logger;
public final class MineconomiaCore extends JavaPlugin {
public static Logger logger = Bukkit.getLogger();
@Override
public void onEnable() {
@ -29,10 +33,12 @@ public final class MineconomiaCore extends JavaPlugin {
logger.info("╚═══════════════════════════════╝");
logger.info("");
Objects.requireNonNull(plugin.getCommand("mcore")).setExecutor(new mcore());
getServer().getPluginManager().registerEvents(new FHBHandler(), this);
//BookCommand
Objects.requireNonNull(getCommand("pomoc")).setExecutor(new BookCommand());
Objects.requireNonNull(getCommand("tpw")).setExecutor(new tpw());
Objects.requireNonNull(getCommand("fhb")).setExecutor(new funHarvestBall());
//CustomItems
ItemManager.init();

@ -0,0 +1,31 @@
package xyz.mineconomia.mineconomiacore.commands;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
public class funHarvestBall implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
if (commandSender instanceof Player){
ItemStack ball = new ItemStack(Material.SNOWBALL, 16);
ItemMeta ballMeta = ball.getItemMeta();
assert ballMeta != null;
ballMeta.addEnchant(Enchantment.DURABILITY, 1, true);
ballMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
ballMeta.setDisplayName(ChatColor.AQUA + "Koule zábavného sklízení");
ball.setItemMeta(ballMeta);
((Player) commandSender).getInventory().addItem(ball);
}
return false;
}
}

@ -0,0 +1,72 @@
package xyz.mineconomia.mineconomiacore.handlers;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.block.data.Ageable;
import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowball;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.inventory.ItemStack;
import xyz.mineconomia.mineconomiacore.MineconomiaCore;
import java.util.Objects;
public class FHBHandler implements Listener {
@EventHandler
public void onFHBHit(ProjectileHitEvent event){
if (event.getEntity() instanceof Snowball){
Snowball ball = (Snowball) event.getEntity();
MineconomiaCore.logger.info(ball.getCustomName());
if (Objects.equals(ball.getCustomName(), "kzs")){
if (event.getHitBlock() != null && event.getHitBlock().getType().equals(Material.FARMLAND)){
Location loc = event.getHitBlock().getLocation();
loc.setY(loc.getBlockY() + 1 );
MineconomiaCore.logger.info(loc.getBlock().getType().toString());
int cx = loc.getBlockX();
int cy = loc.getBlockY();
int cz = loc.getBlockZ();
World w = loc.getWorld();
int r = 10;
int rSquared = r * r;
for (int x = cx - r; x <= cx +r; x++) {
for (int z = cz - r; z <= cz +r; z++) {
if ((cx - x) * (cx - x) + (cz - z) * (cz - z) <= rSquared) {
assert w != null;
Block block = w.getBlockAt(x,cy,z);
if (block.getType().equals(Material.WHEAT )){
Ageable wheatData = (Ageable) block.getBlockData();
if (wheatData.getAge() == 7){
wheatData.setAge(0);
w.playSound(block.getLocation(), "minecraft:block.crop.break", 100, 1);
block.setBlockData(wheatData);
w.dropItemNaturally(block.getLocation(), new ItemStack(Material.WHEAT, 1));
w.spawnParticle(Particle.EXPLOSION_NORMAL, block.getLocation(), 0);
}
}
}
}
}
}
MineconomiaCore.logger.info(Objects.requireNonNull(event.getHitBlock()).getType().toString());
}
}
}
@EventHandler
public void onFHBThrown(ProjectileLaunchEvent event){
if (event.getEntity() instanceof Snowball){
Snowball ball = (Snowball) event.getEntity();
if (ball.getShooter() instanceof Player){
Player player = (Player) ball.getShooter();
ItemStack item = player.getInventory().getItemInMainHand();
if (Objects.requireNonNull(item.getItemMeta()).getDisplayName().equals(ChatColor.AQUA + "Koule zábavného sklízení")){
ball.setCustomName("kzs");
}
}
}
}
}

@ -13,3 +13,5 @@ commands:
description: "administrator's command"
pomoc:
usage: "toto je potřeba někdy dodělat - Kubík"
fhb:
description: "dá kuzelnou kouli sklizně "

Loading…
Cancel
Save