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