diff --git a/core/src/main/java/com/sekwah/advancedportals/core/connector/containers/WorldContainer.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/containers/WorldContainer.java index 4416e2c8..e22caedb 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/connector/containers/WorldContainer.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/connector/containers/WorldContainer.java @@ -4,6 +4,8 @@ import com.sekwah.advancedportals.core.data.BlockAxis; import com.sekwah.advancedportals.core.portal.AdvancedPortal; import com.sekwah.advancedportals.core.serializeddata.BlockLocation; +import java.awt.*; + public interface WorldContainer { void setBlock(BlockLocation location, String material); @@ -16,4 +18,6 @@ public interface WorldContainer { void setBlockAxis(BlockLocation location, BlockAxis axis); void disableBeacon(AdvancedPortal portal); + + void spawnColoredDust(BlockLocation blockPos, double xSpread, double ySpread, double zSpread, int count, Color color); } diff --git a/core/src/main/java/com/sekwah/advancedportals/core/util/Debug.java b/core/src/main/java/com/sekwah/advancedportals/core/util/Debug.java index 63bb426f..73f06db7 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/util/Debug.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/util/Debug.java @@ -8,6 +8,8 @@ public class Debug { public static boolean addMarker(PlayerContainer player, BlockLocation blockPos, String name, Color color, int milliseconds) { + player.getWorld().spawnColoredDust(blockPos, 1, 1, 1, 20, color); + FriendlyDataOutput out = new FriendlyDataOutput(); out.writeBlock(blockPos); out.writeInt(color(color)); diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java index ba3e1aa7..e5cf32f8 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java @@ -14,6 +14,7 @@ import com.sekwah.advancedportals.spigot.connector.command.SpigotCommandRegister import com.sekwah.advancedportals.spigot.connector.container.SpigotServerContainer; import com.sekwah.advancedportals.spigot.importer.LegacyImporter; import com.sekwah.advancedportals.spigot.metrics.Metrics; +import com.sekwah.advancedportals.spigot.reflection.MinecraftCustomPayload; import com.sekwah.advancedportals.spigot.warpeffects.SpigotWarpEffects; import java.io.File; import java.util.regex.Matcher; @@ -59,6 +60,8 @@ public class AdvancedPortalsPlugin extends JavaPlugin { Injector injector = module.getInjector(); + MinecraftCustomPayload.attemptFindData(); + injector.injectMembers(this); injector.injectMembers(this.portalsCore); injector.injectMembers(serverContainer); diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/connector/container/SpigotWorldContainer.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/connector/container/SpigotWorldContainer.java index a0506988..983fc2ca 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/connector/container/SpigotWorldContainer.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/connector/container/SpigotWorldContainer.java @@ -6,11 +6,14 @@ import com.sekwah.advancedportals.core.portal.AdvancedPortal; import com.sekwah.advancedportals.core.serializeddata.BlockLocation; import org.bukkit.Axis; import org.bukkit.Material; +import org.bukkit.Particle; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.EndGateway; import org.bukkit.block.data.Orientable; +import java.awt.*; + public class SpigotWorldContainer implements WorldContainer { private final World world; @@ -108,4 +111,14 @@ public class SpigotWorldContainer implements WorldContainer { } } } + + @Override + public void spawnColoredDust(BlockLocation blockPos, double xSpread, double ySpread, double zSpread, int count, Color color) { + Particle.DustOptions dustOptions = new Particle.DustOptions( + org.bukkit.Color.fromRGB(color.getRed(), color.getGreen(), + color.getBlue()), 1); + this.world.spawnParticle(Particle.REDSTONE, blockPos.getPosX(), + blockPos.getPosY(), blockPos.getPosZ(), 1, + xSpread, ySpread, zSpread, count, dustOptions); + } } diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/reflection/MinecraftCustomPayload.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/reflection/MinecraftCustomPayload.java index b1d781ea..7fc18e7e 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/reflection/MinecraftCustomPayload.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/reflection/MinecraftCustomPayload.java @@ -34,6 +34,13 @@ public class MinecraftCustomPayload { throw new NoSuchFieldException("Field with type " + fieldType + " not found in object"); } + /** + * Attempt to find the methods and classes needed. + */ + public static void attemptFindData() { + + } + private static void outputAllMethodsToFile(Class clazz) throws IOException { var pluginInstance = AdvancedPortalsPlugin.getInstance(); var dataFolder = pluginInstance.getDataFolder(); diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/warpeffects/EnderWarpEffect.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/warpeffects/EnderWarpEffect.java index ede414f0..c4e3aff2 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/warpeffects/EnderWarpEffect.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/warpeffects/EnderWarpEffect.java @@ -3,7 +3,9 @@ package com.sekwah.advancedportals.spigot.warpeffects; import com.sekwah.advancedportals.core.connector.containers.PlayerContainer; import com.sekwah.advancedportals.core.effect.WarpEffect; import com.sekwah.advancedportals.spigot.connector.container.SpigotPlayerContainer; +import org.bukkit.Color; import org.bukkit.Effect; +import org.bukkit.Particle; public class EnderWarpEffect implements WarpEffect.Visual, WarpEffect.Sound { @Override @@ -15,6 +17,8 @@ public class EnderWarpEffect implements WarpEffect.Visual, WarpEffect.Sound { player.getWorld().playSound(player.getLocation(), "entity.enderman.teleport", 1, 1); + + Particle.DustOptions dustOptions = new Particle.DustOptions(Color.RED, 1); } }