start working on error handling stuff

This commit is contained in:
dfsek
2025-12-29 22:18:44 -07:00
parent 9a16336f53
commit cb08401536
76 changed files with 212 additions and 165 deletions
@@ -28,7 +28,7 @@ public class BukkitAddon implements BaseAddon {
}
@Override
public Version getVersion() {
public Version version() {
return VERSION;
}
@@ -26,7 +26,7 @@ public class CloudCommandSender implements CommandSender {
}
@Override
public Maybe<Entity> getEntity() {
public Maybe<Entity> entity() {
if(delegate instanceof org.bukkit.entity.Entity entity) {
return Maybe.just(BukkitAdapter.adapt(entity));
}
@@ -34,7 +34,7 @@ public class CloudCommandSender implements CommandSender {
}
@Override
public Maybe<Player> getPlayer() {
public Maybe<Player> player() {
if(delegate instanceof org.bukkit.entity.Player player) {
return Maybe.just(BukkitAdapter.adapt(player));
}
@@ -17,6 +17,9 @@
package com.dfsek.terra.bukkit.handles;
import com.dfsek.terra.api.error.Invalid;
import com.dfsek.terra.api.error.InvalidBlockStateError;
import com.dfsek.terra.api.util.generic.data.types.Either;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.jetbrains.annotations.NotNull;
@@ -39,10 +42,14 @@ public class BukkitWorldHandle implements WorldHandle {
}
@Override
public synchronized @NotNull BlockState createBlockState(@NotNull String data) {
org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData(
data); // somehow bukkit managed to make this not thread safe! :)
return BukkitBlockState.newInstance(bukkitData);
public synchronized @NotNull Either<Invalid, BlockState> createBlockState(@NotNull String data) {
try {
org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData(
data); // somehow bukkit managed to make this not thread safe! :)
return Either.right(BukkitBlockState.newInstance(bukkitData));
} catch(Exception e) {
return new InvalidBlockStateError(e).left();
}
}
@Override
@@ -39,17 +39,17 @@ public class BukkitBlockTypeAndItem implements BlockType, Item {
}
@Override
public BlockState getDefaultState() {
public BlockState defaultState() {
return BukkitAdapter.adapt(delegate.createBlockData());
}
@Override
public boolean isSolid() {
public boolean solid() {
return delegate.isOccluding();
}
@Override
public boolean isWater() {
public boolean water() {
return delegate == Material.WATER;
}
@@ -61,17 +61,17 @@ public class BukkitBlockState implements BlockState {
}
@Override
public BlockType getBlockType() {
public BlockType blockType() {
return BukkitAdapter.adapt(delegate.getMaterial());
}
@Override
public String getAsString(boolean properties) {
public String asString(boolean properties) {
return delegate.getAsString(!properties);
}
@Override
public boolean isAir() {
public boolean air() {
return delegate.getMaterial().isAir();
}
}
@@ -98,6 +98,6 @@ public class NMSBiomeInjector {
public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) {
return pack.getID()
.toLowerCase() + "/" + biomeID.getNamespace().toLowerCase(Locale.ROOT) + "/" + biomeID.getID().toLowerCase(Locale.ROOT);
.toLowerCase() + "/" + biomeID.namespace().toLowerCase(Locale.ROOT) + "/" + biomeID.getID().toLowerCase(Locale.ROOT);
}
}