wip: try switching over to particles

This commit is contained in:
Sekwah 2024-11-28 00:58:45 +00:00
parent d42fbd67c5
commit acdf7a768a
No known key found for this signature in database
6 changed files with 33 additions and 0 deletions

View File

@ -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);
}

View File

@ -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));

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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();

View File

@ -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);
}
}