Adds some helper code mainly related to signs
All checks were successful
KnarCraft/KnarLib/pipeline/head This commit looks good

This commit is contained in:
2025-09-03 17:43:08 +02:00
parent 3855405a8e
commit fb807d6163
3 changed files with 95 additions and 10 deletions

View File

@@ -240,16 +240,6 @@ public final class FormatBuilder {
return this; return this;
} }
/**
* Builds the output of the performed replacements and formatting
*
* @return <p>The result</p>
*/
@NotNull
public String toString() {
return this.toFormat;
}
/** /**
* Displays the result to the specified command sender as a success message * Displays the result to the specified command sender as a success message
* *
@@ -289,4 +279,10 @@ public final class FormatBuilder {
FormatBuilder.stringFormatter.displayNeutralMessage(commandSender, this.toFormat); FormatBuilder.stringFormatter.displayNeutralMessage(commandSender, this.toFormat);
} }
@NotNull
@Override
public String toString() {
return this.toFormat;
}
} }

View File

@@ -0,0 +1,28 @@
package net.knarcraft.knarlib.util;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* A helper class for dealing with blocks
*/
public final class BlockHelper {
private BlockHelper() {
}
/**
* Gets the block the player is currently looking at
*
* @param player <p>The player looking at a block</p>
* @return <p>The block the player is looking at</p>
*/
@Nullable
public static Block getLookedAtBlock(@NotNull Player player) {
return player.getTargetBlockExact(7);
}
}

View File

@@ -0,0 +1,61 @@
package net.knarcraft.knarlib.util;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.block.sign.Side;
import org.bukkit.block.sign.SignSide;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* A helper class for dealing with sign sides
*/
@SuppressWarnings("unused")
public final class SignHelper {
private SignHelper() {
}
/**
* Gets the side of the given sign the given player is standing on (which side the player clicked)
*
* @param sign <p>The sign to check</p>
* @param player <p>The player to check</p>
* @return <p>The side of the sign the player is standing on</p>
*/
@NotNull
public static Side getSide(@NotNull Sign sign, @NotNull Player player) {
SignSide standingOn = sign.getTargetSide(player);
return sign.getSide(Side.FRONT).equals(standingOn) ? Side.FRONT : Side.BACK;
}
/**
* Gets the opposite sign side from the given sign side
*
* @param side <p>The side to get the opposite of</p>
* @return <p>The opposite side</p>
*/
@NotNull
public static Side getOpposite(@NotNull Side side) {
return side == Side.FRONT ? Side.BACK : Side.FRONT;
}
/**
* Gets the sign the player is currently looking at
*
* @param player <p>The player to check</p>
* @return <p>The sign the player is looking at, or null if not looking at a sign</p>
*/
@Nullable
public static Sign getLookedAtSign(@NotNull Player player) {
Block targetBlock = BlockHelper.getLookedAtBlock(player);
if (targetBlock == null || !(targetBlock.getState() instanceof Sign sign)) {
return null;
} else {
return sign;
}
}
}