Skip to content

Commit

Permalink
clean util methods
Browse files Browse the repository at this point in the history
  • Loading branch information
xGinko committed Dec 12, 2024
1 parent f67af6d commit 363e6d0
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 39 deletions.
6 changes: 3 additions & 3 deletions src/main/java/me/xginko/snowballfight/modules/SnowOnHit.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.cryptomorin.xseries.XEntityType;
import com.cryptomorin.xseries.XMaterial;
import me.xginko.snowballfight.SnowballFight;
import me.xginko.snowballfight.utils.SnowTool;
import me.xginko.snowballfight.utils.SnowLayerHelper;
import me.xginko.snowballfight.utils.Util;
import org.bukkit.Location;
import org.bukkit.Material;
Expand Down Expand Up @@ -141,8 +141,8 @@ private void coverWithSnowAt(Block startBlock) {
continue;
}

if (SnowTool.CAN_MODIFY_SNOW && addSnowLayer && iterativeType == XMaterial.SNOW.parseMaterial()) {
SnowTool.increaseSnowLayer(iterativeBlock, replaceFullLayer, powderSnowEnabled);
if (SnowLayerHelper.CAN_MODIFY_SNOW && addSnowLayer && iterativeType == XMaterial.SNOW.parseMaterial()) {
SnowLayerHelper.addLayer(iterativeBlock, replaceFullLayer, powderSnowEnabled);
continue;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.cryptomorin.xseries.XEntityType;
import me.xginko.snowballfight.SnowballFight;
import me.xginko.snowballfight.WrappedSnowball;
import me.xginko.snowballfight.utils.ParticleTool;
import me.xginko.snowballfight.utils.ParticleHelper;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Snowball;
Expand Down Expand Up @@ -104,8 +104,8 @@ public void run() {
}

try {
ParticleTool.spawnTrailParticle(wrappedSnowball.snowball.getLocation(), wrappedSnowball.getPrimaryColor(), amount, size);
ParticleTool.spawnTrailParticle(wrappedSnowball.snowball.getLocation(), wrappedSnowball.getSecondaryColor(), amount, size);
ParticleHelper.spawnDustParticle(wrappedSnowball.snowball.getLocation(), wrappedSnowball.getPrimaryColor(), amount, size);
ParticleHelper.spawnDustParticle(wrappedSnowball.snowball.getLocation(), wrappedSnowball.getSecondaryColor(), amount, size);
} catch (Throwable t) {
particleTasks.remove(wrappedSnowball.snowball.getUniqueId()).cancel();
SnowballFight.logger().warn("Trail task ended with an exception - {}", t.getLocalizedMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.bukkit.Location;
import org.bukkit.Particle;

public class ParticleTool {
public class ParticleHelper {

private static final boolean HAS_PARTICLE_BUILDER, HAS_DUST_OPTIONS;

Expand All @@ -15,7 +15,8 @@ public class ParticleTool {
HAS_DUST_OPTIONS = Util.hasClass("org.bukkit.Particle$DustOptions");
}

public static void spawnTrailParticle(Location location, Color color, int amount, float size) {
public static void spawnDustParticle(Location location, Color color, int amount, float size) {
// Paper
if (HAS_PARTICLE_BUILDER) {
ParticleBuilder builder = new ParticleBuilder(XParticle.DUST.get())
.location(location)
Expand All @@ -25,7 +26,7 @@ public static void spawnTrailParticle(Location location, Color color, int amount
return;
}

// spigot 1.13+
// Spigot 1.13+
if (HAS_DUST_OPTIONS) {
location.getWorld().spawnParticle(
XParticle.DUST.get(),
Expand All @@ -38,7 +39,10 @@ public static void spawnTrailParticle(Location location, Color color, int amount
return;
}

// spigot 1.12
// Spigot 1.12 - recreated from ParticleBuilder methods on Paper 1.12 but doesn't work as intended.
// Particles are randomly dispersed instead of spawned on a straight line and are also randomly colored.
// And yes, this also happens when using ParticleBuilder, so yeah.
// Not researching this further as I have no interest in supporting legacy versions but left in for people that care.
location.getWorld().spawnParticle(
XParticle.DUST.get(),
location,
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/me/xginko/snowballfight/utils/SnowLayerHelper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package me.xginko.snowballfight.utils;

import com.cryptomorin.xseries.XMaterial;
import org.bukkit.block.Block;
import org.bukkit.block.data.type.Snow;

public class SnowLayerHelper {

public static final boolean CAN_MODIFY_SNOW = Util.hasClass("org.bukkit.block.data.type.Snow");

public static void addLayer(Block block, boolean replaceFullLayer, boolean usePowderSnow) {
Snow snow = (Snow) block.getBlockData();

if (replaceFullLayer) {
if (snow.getLayers() < snow.getMaximumLayers() - 1) {
snow.setLayers(snow.getLayers() + 1);
block.setBlockData(snow);
} else {
// If only one or no more layers left to add, turn into snow block.
block.setType(usePowderSnow ? XMaterial.POWDER_SNOW.parseMaterial() : XMaterial.SNOW_BLOCK.parseMaterial(), true);
}
return;
}

if (snow.getLayers() < snow.getMaximumLayers()) {
snow.setLayers(snow.getLayers() + 1);
block.setBlockData(snow);
}
}
}
29 changes: 0 additions & 29 deletions src/main/java/me/xginko/snowballfight/utils/SnowTool.java

This file was deleted.

0 comments on commit 363e6d0

Please sign in to comment.