commit 0741c2335e78fa324a74ddad4c3834e7a90faf44
parent 25fffa973a7efd260709065feac86e9f08deab67
Author: chunksize <reisingerluca@gmail.com>
Date: Fri, 30 Dec 2022 18:22:29 +0100
Fixed chair and added crop harvest
Diffstat:
8 files changed, 82 insertions(+), 325 deletions(-)
diff --git a/src/de/typable/minecrafthub/Config.java b/src/de/typable/minecrafthub/Config.java
@@ -1,40 +0,0 @@
-package de.typable.minecrafthub;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-
-import com.google.gson.Gson;
-
-
-public class Config
-{
- private static final Gson gson = new Gson();
-
- public static Config open(String path)
- {
- File file = new File(path);
-
- try
- {
- if(!file.exists())
- {
- file.createNewFile();
- }
-
- String content = Files.readString(Paths.get(path));
-
- if(content != null)
- {
- // TODO: convert string to json object
- }
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
- }
-
- return new Config();
- }
-}
diff --git a/src/de/typable/minecrafthub/Main.java b/src/de/typable/minecrafthub/Main.java
@@ -30,7 +30,6 @@ import de.typable.minecrafthub.event.DoubleDoorListener;
import de.typable.minecrafthub.event.EventListener;
import de.typable.minecrafthub.event.LeavesDecayListener;
import de.typable.minecrafthub.event.StandbyListener;
-import de.typable.minecrafthub.game.kit.KitGame;
import de.typable.minecrafthub.util.Util;
@@ -44,8 +43,6 @@ public class Main extends JavaPlugin
private LeavesDecayListener leavesDecayListener;
private EventListener eventListener;
- private KitGame kitGame;
-
private Plugin plugin;
private BukkitTask task;
@@ -73,10 +70,6 @@ public class Main extends JavaPlugin
eventListener = new EventListener();
pluginManager.registerEvents(eventListener, this);
-
- kitGame = new KitGame();
- this.getCommand("kit").setExecutor(kitGame);
- pluginManager.registerEvents(kitGame, this);
task = Bukkit.getScheduler().runTaskAsynchronously(this, new Runnable()
{
diff --git a/src/de/typable/minecrafthub/event/ChairListener.java b/src/de/typable/minecrafthub/event/ChairListener.java
@@ -18,6 +18,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.util.Vector;
import org.spigotmc.event.entity.EntityDismountEvent;
import de.typable.minecrafthub.util.Util;
@@ -112,6 +113,15 @@ public class ChairListener implements Listener
}
}
+ Location location = entity.getLocation();
+ location.add(0, 1, 0);
+
+ for(Entity passenger : entity.getPassengers()) {
+ location.setPitch(passenger.getLocation().getPitch());
+ location.setYaw(passenger.getLocation().getYaw());
+ passenger.teleport(location);
+ }
+
entity.remove();
}
}
diff --git a/src/de/typable/minecrafthub/event/EventListener.java b/src/de/typable/minecrafthub/event/EventListener.java
@@ -2,6 +2,11 @@ package de.typable.minecrafthub.event;
import org.bukkit.ChatColor;
import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.BlockFace;
+import org.bukkit.block.data.Ageable;
+import org.bukkit.block.data.BlockData;
+import org.bukkit.block.data.Directional;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@@ -15,16 +20,22 @@ import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
+import de.typable.minecrafthub.util.Util;
+
public class EventListener implements Listener
{
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event)
{
+
+ Player player = event.getPlayer();
+
if(event.getAction() == Action.PHYSICAL)
{
if(event.getClickedBlock() != null)
@@ -35,6 +46,62 @@ public class EventListener implements Listener
}
}
}
+
+ // farming with right click
+
+ EquipmentSlot equip = event.getHand();
+ if(equip.equals(EquipmentSlot.HAND)) {
+
+ if(event.getAction() == Action.RIGHT_CLICK_BLOCK)
+ {
+ Block block = event.getClickedBlock();
+
+ if(block == null)
+ {
+ return;
+ }
+
+ Material material = block.getType();
+
+ if(player.isSneaking())
+ {
+ return;
+ }
+
+ BlockData blockdata = block.getBlockData();
+
+ if(blockdata instanceof Ageable)
+ {
+
+ Ageable ageable = (Ageable) blockdata;
+
+ if(Util.isFarmable(material) && ageable.getAge() == ageable.getMaximumAge())
+ {
+
+ if(blockdata instanceof Directional)
+ {
+ Directional directional = (Directional) blockdata;
+ BlockFace blockface = directional.getFacing();
+
+ block.breakNaturally(player.getItemInUse());
+ block.setType(material);
+ directional = (Directional) blockdata;
+ ageable.setAge(0);
+ directional.setFacing(blockface);
+ block.setBlockData(blockdata);
+ }
+ else
+ {
+ block.breakNaturally(player.getItemInUse());
+ block.setType(material);
+ }
+
+ }
+
+ }
+ }
+
+ }
}
@EventHandler
diff --git a/src/de/typable/minecrafthub/game/Game.java b/src/de/typable/minecrafthub/game/Game.java
@@ -1,86 +0,0 @@
-package de.typable.minecrafthub.game;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.entity.Player;
-import org.bukkit.event.Listener;
-
-import de.typable.minecrafthub.Config;
-import de.typable.minecrafthub.constant.DefaultConstants;
-
-public abstract class Game implements CommandExecutor, Listener
-{
- private Map<Player, PlayerState> players;
- private Config config;
-
- public Game()
- {
- players = new HashMap<>();
- }
-
- public void join(Player player)
- {
- if(players.containsKey(player))
- {
- player.sendMessage(DefaultConstants.Messages.ALREADY_INGAME);
-
- return;
- }
-
- players.put(player, PlayerState.of(player));
- }
-
- public void leave(Player player)
- {
- PlayerState playerState = players.get(player);
-
- if(playerState == null)
- {
- player.sendMessage(DefaultConstants.Messages.NOT_INGAME);
-
- return;
- }
-
- playerState.apply(player);
- players.remove(player);
- }
-
- public void leaveAll()
- {
- Iterator<Entry<Player, PlayerState>> iterator = players.entrySet().iterator();
-
- while(iterator.hasNext())
- {
- Entry<Player, PlayerState> entry = iterator.next();
- Player player = entry.getKey();
- PlayerState playerState = entry.getValue();
-
- playerState.apply(player);
- iterator.remove();
- }
- }
-
- public boolean isIngame(Player player)
- {
- return player != null && players.containsKey(player);
- }
-
- public Map<Player, PlayerState> getPlayers()
- {
- return players;
- }
-
- public void setConfig(Config config)
- {
- this.config = config;
- }
-
- public Config getConfig()
- {
- return config;
- }
-}
diff --git a/src/de/typable/minecrafthub/game/PlayerState.java b/src/de/typable/minecrafthub/game/PlayerState.java
@@ -1,133 +0,0 @@
-package de.typable.minecrafthub.game;
-
-import java.util.UUID;
-
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class PlayerState
-{
- private UUID uuid;
- private Double health;
- private Integer foodLevel;
- private Integer level;
- private Float exp;
- private Location location;
- private GameMode gameMode;
- private ItemStack[] equipment;
-
- public static PlayerState of(Player player)
- {
- PlayerState playerState = new PlayerState();
-
- playerState.setUUID(player.getUniqueId());
- playerState.setHealth(player.getHealth());
- playerState.setFoodLevel(player.getFoodLevel());
- playerState.setLevel(player.getLevel());
- playerState.setExp(player.getExp());
- playerState.setLocation(player.getLocation());
- playerState.setGameMode(player.getGameMode());
- playerState.setEquipment(player.getInventory().getContents());
-
- return playerState;
- }
-
- public void apply(Player player)
- {
- if(!player.getUniqueId().equals(uuid))
- {
- throw new IllegalArgumentException("Only the player with the same UUID as the state can recieve it!");
- }
-
- player.setHealth(health);
- player.setFoodLevel(foodLevel);
- player.setLevel(level);
- player.setExp(exp);
- player.teleport(location);
- player.setGameMode(gameMode);
- player.getInventory().setContents(equipment);
- // equipment
- }
-
- public UUID getUUID()
- {
- return uuid;
- }
-
- public void setUUID(UUID uuid)
- {
- this.uuid = uuid;
- }
-
- public Double getHealth()
- {
- return health;
- }
-
- public void setHealth(Double health)
- {
- this.health = health;
- }
-
- public Integer getFoodLevel()
- {
- return foodLevel;
- }
-
- public void setFoodLevel(Integer foodLevel)
- {
- this.foodLevel = foodLevel;
- }
-
- public Integer getLevel()
- {
- return level;
- }
-
- public void setLevel(Integer level)
- {
- this.level = level;
- }
-
- public Float getExp()
- {
- return exp;
- }
-
- public void setExp(Float exp)
- {
- this.exp = exp;
- }
-
- public Location getLocation()
- {
- return location;
- }
-
- public void setLocation(Location location)
- {
- this.location = location;
- }
-
- public GameMode getGameMode()
- {
- return gameMode;
- }
-
- public void setGameMode(GameMode gameMode)
- {
- this.gameMode = gameMode;
- }
-
- public ItemStack[] getEquipment()
- {
- return equipment;
- }
-
- public void setEquipment(ItemStack[] equipment)
- {
- this.equipment = equipment;
- }
-}
diff --git a/src/de/typable/minecrafthub/game/kit/KitGame.java b/src/de/typable/minecrafthub/game/kit/KitGame.java
@@ -1,59 +0,0 @@
-package de.typable.minecrafthub.game.kit;
-
-import org.bukkit.GameMode;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.block.BlockBreakEvent;
-
-import de.typable.minecrafthub.game.Game;
-
-public class KitGame extends Game
-{
- public KitGame()
- {
- super();
- }
-
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
- {
- if(sender instanceof Player)
- {
- Player player = (Player) sender;
-
- if(args.length > 0)
- {
- if(args[0].equals("join"))
- {
- join(player);
- }
-
- if(args[0].equals("leave"))
- {
- leave(player);
- }
- }
- }
-
- return false;
- }
-
- @Override
- public void join(Player player)
- {
- super.join(player);
- player.setGameMode(GameMode.SURVIVAL);
- player.getInventory().clear();
- }
-
- @EventHandler
- public void onBlockBreak(BlockBreakEvent event)
- {
- if(isIngame(event.getPlayer()))
- {
- event.setCancelled(true);
- }
- }
-}
diff --git a/src/de/typable/minecrafthub/util/Util.java b/src/de/typable/minecrafthub/util/Util.java
@@ -132,4 +132,9 @@ public class Util
{
return material == Material.AIR || material == Material.CAVE_AIR || material == Material.VOID_AIR;
}
+
+ public static boolean isFarmable(Material material)
+ {
+ return material == Material.WHEAT || material == Material.CARROTS || material == Material.POTATOES || material == Material.BEETROOTS || material == Material.NETHER_WART || material == Material.COCOA;
+ }
}