From dfdea0762b36a55602e9bb750b933aebe7b34b03 Mon Sep 17 00:00:00 2001 From: joethei Date: Tue, 11 Oct 2016 23:55:49 +0200 Subject: [PATCH] + added first test mission + testing EntityModifier --- Lobby.iml | 40 ++++++--- pom.xml | 22 +++-- src/main/java/eu/univento/lobby/Lobby.java | 18 ++-- .../eu/univento/lobby/listeners/Events.java | 88 +++++++++++-------- .../eu/univento/lobby/listeners/Jumppads.java | 13 ++- .../univento/lobby/listeners/StatusSigns.java | 4 +- .../story/events/StartMissionEvents.java | 34 +++++++ .../lobby/story/missions/StartMission.java | 20 +++++ .../lobby/utils/CustomMapRenderer.java | 6 +- .../eu/univento/lobby/utils/Scoreboards.java | 4 +- 10 files changed, 166 insertions(+), 83 deletions(-) create mode 100644 src/main/java/eu/univento/lobby/story/events/StartMissionEvents.java create mode 100644 src/main/java/eu/univento/lobby/story/missions/StartMission.java diff --git a/Lobby.iml b/Lobby.iml index d031af3..67a3651 100644 --- a/Lobby.iml +++ b/Lobby.iml @@ -9,28 +9,44 @@ - + - - + - - - + + + - - + + + + + + + + + + + + + + + - - - - + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4dcc6a3..b5a7ef4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - groupId + eu.univento Lobby 1.0-SNAPSHOT @@ -57,28 +57,32 @@ - org.bukkit - craftbukkit - 1.10-R0.1-SNAPSHOT + org.spigotmc + spigot-api + 1.10.2-R0.1-SNAPSHOT provided org.bukkit bukkit - 1.10-R0.1-SNAPSHOT + 1.10.2-R0.1-SNAPSHOT provided - org.spigotmc - spigot-api - 1.10-R0.1-SNAPSHOT - provided + org.bukkit + craftbukkit + 1.10.2-R0.1-SNAPSHOT eu.univento Core 1.0-SNAPSHOT + + eu.univento + Commons + 1.0-SNAPSHOT + \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/Lobby.java b/src/main/java/eu/univento/lobby/Lobby.java index 7d0df1b..ebaeec8 100644 --- a/src/main/java/eu/univento/lobby/Lobby.java +++ b/src/main/java/eu/univento/lobby/Lobby.java @@ -1,10 +1,10 @@ package eu.univento.lobby; -import java.util.logging.Level; -import java.util.logging.Logger; - +import eu.univento.core.Core; import eu.univento.core.api.pet.NMSHandler; import eu.univento.core.api.server.ServerSettings; +import eu.univento.lobby.commands.DropItem; +import eu.univento.lobby.commands.Setloc; import eu.univento.lobby.listeners.*; import eu.univento.lobby.utils.PetManager; import eu.univento.lobby.utils.StatusSignManager; @@ -15,8 +15,8 @@ import org.bukkit.World; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; -import eu.univento.lobby.commands.DropItem; -import eu.univento.lobby.commands.Setloc; +import java.util.logging.Level; +import java.util.logging.Logger; /** * main class... @@ -55,8 +55,7 @@ public class Lobby extends JavaPlugin{ @Override public void onEnable() { instance = this; - PluginManager pm = Bukkit.getPluginManager(); - ServerSettings.setLobby(true); + PluginManager pm = Bukkit.getPluginManager();; pm.registerEvents(new Jumppads(), this); pm.registerEvents(new JoinQuit(), this); pm.registerEvents(new MenuEvents(), this); @@ -82,11 +81,12 @@ public class Lobby extends JavaPlugin{ w.setDifficulty(Difficulty.PEACEFUL); } ServerSettings.setGameMode(GameMode.ADVENTURE); - ServerSettings.setLobby(true); + ServerSettings.setLobby(); StatusSignManager.loadSigns(); StatusSignManager.updateSigns(); NMSHandler.registerEnties(); - log(Level.INFO, " Plugin ver." + getDescription().getVersion() + " gestartet"); + Core.getInstance().registerPlugin(this); + log(Level.INFO, " Plugin ver." + getDescription().getVersion() + " gestartet"); } diff --git a/src/main/java/eu/univento/lobby/listeners/Events.java b/src/main/java/eu/univento/lobby/listeners/Events.java index a5d8471..8cf302f 100644 --- a/src/main/java/eu/univento/lobby/listeners/Events.java +++ b/src/main/java/eu/univento/lobby/listeners/Events.java @@ -1,15 +1,22 @@ package eu.univento.lobby.listeners; -import eu.univento.core.api.Title; +import eu.univento.core.api.Config; +import eu.univento.core.api.player.CustomPlayer; import eu.univento.lobby.Lobby; +import eu.univento.lobby.story.missions.StartMission; import eu.univento.lobby.utils.CustomMapRenderer; import eu.univento.lobby.utils.PetManager; import eu.univento.lobby.utils.Pets; import eu.univento.lobby.utils.Scoreboards; import net.minecraft.server.v1_10_R1.EnumParticle; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.block.Skull; -import org.bukkit.entity.*; +import org.bukkit.entity.Creature; +import org.bukkit.entity.ItemFrame; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; @@ -25,15 +32,9 @@ import org.bukkit.event.player.*; import org.bukkit.event.server.MapInitializeEvent; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.event.world.StructureGrowEvent; - -import eu.univento.core.api.Config; -import eu.univento.core.api.player.CustomPlayer; -import org.bukkit.map.MapRenderer; import org.bukkit.map.MapView; import org.bukkit.util.Vector; -import java.util.Set; - /** * some short events * @@ -166,9 +167,8 @@ public class Events implements Listener { */ @EventHandler public void onBlockIgnite(BlockIgniteEvent e) { - if (e.getCause() == IgniteCause.SPREAD) { + if (e.getCause() == IgniteCause.SPREAD) e.setCancelled(true); - } } /** @@ -196,21 +196,6 @@ public class Events implements Listener { if (e.getClickedBlock().getType() == Material.SPRUCE_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOOD_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOODEN_DOOR) e.setCancelled(true); - - if (e.getClickedBlock().getType() == Material.BEDROCK) { - p.setPlayerWeather(WeatherType.DOWNFALL); - p.setPlayerTime(15000, true); - p.sendBlockChange(e.getClickedBlock().getLocation(), Material.TNT, (byte) 0); - p.getWorld().strikeLightning(p.getTargetBlock((Set) null, 500).getLocation()); - Bukkit.getScheduler().scheduleSyncDelayedTask(Lobby.getInstance(), () -> p.getWorld().strikeLightning(p.getTargetBlock((Set) null, 500).getLocation()), 5 * 20L); - Bukkit.getScheduler().scheduleSyncDelayedTask(Lobby.getInstance(), () -> { - p.resetPlayerWeather(); - p.resetPlayerTime(); - p.sendBlockChange(e.getClickedBlock().getLocation(), Material.BEDROCK, (byte) 0); - p.getWorld().strikeLightning(p.getTargetBlock((Set) null, 500).getLocation()); - }, 10 * 20L); - - } if (e.getClickedBlock().getType() == Material.SKULL) { Skull skull = (Skull) e.getClickedBlock().getState(); if (skull.getOwner().equals("MHF_Chest")) { @@ -218,14 +203,16 @@ public class Events implements Listener { p.playParticle(skull.getLocation().add(0.5D, 1.5D, 0.5D), EnumParticle.ENCHANTMENT_TABLE, 0.3F, 500); Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), () -> { p.playParticle(skull.getLocation().add(0.5D, 0.0D, 0.5D), EnumParticle.SPELL_WITCH, 0.4F, 500); - - Title.sendTitle(p, 10, 50, 10, "§eDu hast ein Versteck gefunden", "§6Name hier einfügen"); - p.addCoins(100); + p.sendTitle(10, 50, 10, "§eDu hast ein Versteck gefunden", "§6Name hier einfügen"); + p.getDatabasePlayer().addCoins(100); Scoreboards.updateScoreboard(p); }, 3 * 20L); } } + if(e.getClickedBlock().getType() == Material.STONE_BUTTON) { + new StartMission(p); + } } } /** @@ -240,9 +227,8 @@ public class Events implements Listener { @EventHandler public void onHangingBreak(HangingBreakByEntityEvent e) { - if (e.getEntity() instanceof ItemFrame) { + if (e.getEntity() instanceof ItemFrame) e.setCancelled(true); - } } @EventHandler @@ -264,13 +250,9 @@ public class Events implements Listener { public void onChat(AsyncPlayerChatEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - for (CustomPlayer players : PlayerHider.getSilentlobby()) { - e.getRecipients().remove(players); - } + for (CustomPlayer players : PlayerHider.getSilentlobby()) e.getRecipients().remove(players); - if (PlayerHider.getSilentlobby().contains(p)) { - e.setCancelled(true); - } + if (PlayerHider.getSilentlobby().contains(p)) e.setCancelled(true); } @EventHandler @@ -279,9 +261,15 @@ public class Events implements Listener { if (PetManager.hasPet(p)) { new Pets().followPlayer((Creature) PetManager.getPet(p), p, 1.4); } - if ((p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() == Material.STATIONARY_WATER) && (p.getVehicle() == null) && (p.getGameMode() != GameMode.CREATIVE) && (!p.isFlying())) { + if ((p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) + && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() == Material.STATIONARY_WATER) + && (p.getVehicle() == null) && (p.getGameMode() != GameMode.CREATIVE) + && (!p.isFlying())) { p.setGliding(true); - }else{ + } + if ((p.getLocation().getBlock().getType() != Material.STATIONARY_WATER) + && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) + && (p.getVehicle() == null)) { p.setGliding(false); } //only for debugging purposes @@ -291,6 +279,28 @@ public class Events implements Listener { } } + @EventHandler + public void onEntityToggleGlideEvent(EntityToggleGlideEvent e) { + if(e.getEntity() instanceof Player) { + final CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); + if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) { + p.setVelocity(new Vector(p.getLocation().getDirection().getX() * 1, 1 * -1.0, p.getLocation().getDirection().getZ() * 0.1)); + e.setCancelled(true); + } + if(p.isSneaking()) { + e.setCancelled(true); + } + } + } + + @EventHandler + public void onToogleSneak(PlayerToggleSneakEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + if(!p.isSneaking()) { + p.setGliding(true); + } + } + @EventHandler public void onEntityBlockChange(EntityChangeBlockEvent e) { e.setCancelled(true); diff --git a/src/main/java/eu/univento/lobby/listeners/Jumppads.java b/src/main/java/eu/univento/lobby/listeners/Jumppads.java index 96bdcd9..731538f 100644 --- a/src/main/java/eu/univento/lobby/listeners/Jumppads.java +++ b/src/main/java/eu/univento/lobby/listeners/Jumppads.java @@ -1,7 +1,9 @@ package eu.univento.lobby.listeners; -import java.util.ArrayList; - +import eu.univento.commons.player.Rank; +import eu.univento.core.api.Config; +import eu.univento.core.api.player.CustomPlayer; +import eu.univento.lobby.Lobby; import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Material; @@ -15,10 +17,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.util.Vector; -import eu.univento.core.api.Config; -import eu.univento.core.api.player.CustomPlayer; -import eu.univento.core.api.player.Rank; -import eu.univento.lobby.Lobby; +import java.util.ArrayList; /** * fun for player @@ -68,7 +67,7 @@ public class Jumppads implements Listener{ } if(block.getType() == Material.DIAMOND_BLOCK) { - if(p.isAllowed(Rank.Premium)) { + if(p.getDatabasePlayer().isAllowed(Rank.Premium)) { if(!flyPremium.contains(p)) { Vector v = p.getLocation().getDirection().multiply(1D).setY(3D); p.setVelocity(v); diff --git a/src/main/java/eu/univento/lobby/listeners/StatusSigns.java b/src/main/java/eu/univento/lobby/listeners/StatusSigns.java index 7aa27be..eabb19e 100644 --- a/src/main/java/eu/univento/lobby/listeners/StatusSigns.java +++ b/src/main/java/eu/univento/lobby/listeners/StatusSigns.java @@ -1,8 +1,8 @@ package eu.univento.lobby.listeners; +import eu.univento.commons.player.Rank; import eu.univento.core.api.languages.Messages; import eu.univento.core.api.player.CustomPlayer; -import eu.univento.core.api.player.Rank; import eu.univento.lobby.utils.StatusSign; import eu.univento.lobby.utils.StatusSignManager; import org.bukkit.Material; @@ -22,7 +22,7 @@ public class StatusSigns implements Listener{ @EventHandler public void onSignChange(SignChangeEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); - if(e.getLine(0).equals("[join]") && p.isAllowed(Rank.Developer)) { + if(e.getLine(0).equals("[join]") && p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) { StatusSignManager.addSign(e.getLine(1), e.getBlock().getLocation()); Messages msgs = new Messages(p); p.sendMessage(msgs.Lobby_SET_SIGN()); diff --git a/src/main/java/eu/univento/lobby/story/events/StartMissionEvents.java b/src/main/java/eu/univento/lobby/story/events/StartMissionEvents.java new file mode 100644 index 0000000..6259728 --- /dev/null +++ b/src/main/java/eu/univento/lobby/story/events/StartMissionEvents.java @@ -0,0 +1,34 @@ +package eu.univento.lobby.story.events; + +import eu.univento.core.api.entity.EntityModifier; +import eu.univento.core.api.player.CustomPlayer; +import eu.univento.core.api.story.StoryMission; +import eu.univento.lobby.Lobby; +import org.bukkit.Bukkit; +import org.bukkit.entity.EntityType; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; + +/** + * @author joethei + * @version 0.1 + */ +public class StartMissionEvents implements Listener{ + + private StoryMission mission; + + public StartMissionEvents(StoryMission mission) { + this.mission = mission; + mission.registerEvent(this); + } + + @EventHandler + public void onBlockBreak(BlockBreakEvent e) { + CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); + p.sendMessage("Hallo du da"); + EntityModifier.Builder modifier = new EntityModifier(p.getWorld().spawnEntity(p.getLocation(), EntityType.CREEPER)).modify(); + modifier.setNoAI(true).followPlayer(p, 1.0F); + Bukkit.getScheduler().scheduleSyncDelayedTask(Lobby.getInstance(), modifier::die, 10 * 20L); + } +} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/story/missions/StartMission.java b/src/main/java/eu/univento/lobby/story/missions/StartMission.java new file mode 100644 index 0000000..8c69026 --- /dev/null +++ b/src/main/java/eu/univento/lobby/story/missions/StartMission.java @@ -0,0 +1,20 @@ +package eu.univento.lobby.story.missions; + +import eu.univento.core.api.player.CustomPlayer; +import eu.univento.core.api.story.StoryMission; +import eu.univento.core.api.story.StoryMissions; +import eu.univento.lobby.story.events.StartMissionEvents; + +/** + * @author joethei + * @version 0.1 + */ +public class StartMission extends StoryMission{ + + public StartMission(CustomPlayer player) { + super(StoryMissions.START, player); + player.sendMessage("Hallo los geht die Mission"); + new StartMissionEvents(this); + } + +} \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java b/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java index 364c102..eef5c81 100644 --- a/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java +++ b/src/main/java/eu/univento/lobby/utils/CustomMapRenderer.java @@ -18,8 +18,8 @@ public class CustomMapRenderer extends MapRenderer{ public void render(MapView mapView, MapCanvas mapCanvas, Player player) { CustomPlayer p = CustomPlayer.getPlayer(player); mapCanvas.drawText(1, 10, MinecraftFont.Font, "Hallo " + p.getName()); - mapCanvas.drawText(1, 20, MinecraftFont.Font, "Du bist ein " + p.getRank().name()); - mapCanvas.drawText(1, 30, MinecraftFont.Font, p.getFirstLogin().toString()); - mapCanvas.drawText(1, 40, MinecraftFont.Font, "Sprache " + p.getLanguage()); + mapCanvas.drawText(1, 20, MinecraftFont.Font, "Du bist ein " + p.getDatabasePlayer().getRank().name()); + mapCanvas.drawText(1, 30, MinecraftFont.Font, p.getDatabasePlayer().getFirstLogin().toString()); + mapCanvas.drawText(1, 40, MinecraftFont.Font, "Sprache " + p.getDatabasePlayer().getLanguage()); } } \ No newline at end of file diff --git a/src/main/java/eu/univento/lobby/utils/Scoreboards.java b/src/main/java/eu/univento/lobby/utils/Scoreboards.java index 6a740df..8ad33bf 100644 --- a/src/main/java/eu/univento/lobby/utils/Scoreboards.java +++ b/src/main/java/eu/univento/lobby/utils/Scoreboards.java @@ -28,7 +28,7 @@ public class Scoreboards { Score coinsMsg = obj.getScore(msgs.LobbyBoard_COINS()); coinsMsg.setScore(12); - Score coins = obj.getScore("§7" + p.getCoins()); + Score coins = obj.getScore("§7" + p.getDatabasePlayer().getCoins()); coins.setScore(11); Score empty1 = obj.getScore(" "); @@ -37,7 +37,7 @@ public class Scoreboards { Score foundMsg = obj.getScore(msgs.LobbyBoard_FOUND_SECRETS()); foundMsg.setScore(9); - Score found = obj.getScore("§7" + p.getSecrets()); + Score found = obj.getScore("§7" + p.getDatabasePlayer().getSecrets()); found.setScore(8); Score empty2 = obj.getScore(" ");