parent
ba8ff6b828
commit
b7f9e32bfe
4 changed files with 111 additions and 0 deletions
@ -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"); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue