Skip to content

Commit 570e88a

Browse files
authored
Modify access to improve minimizability (#102)
Fix delegate service not loading properly Improve minimizability: - Allow usage of delegated services directly - Allow access to temperers and states without AnvilCreator
1 parent 9aa2b08 commit 570e88a

7 files changed

Lines changed: 41 additions & 11 deletions

File tree

enchanting-bundler/src/main/java/com/github/jikoo/planarenchanting/util/DelegateEnchantProvider.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
import com.github.jikoo.planarenchanting.util.EnchantData.Provider;
44
import org.bukkit.enchantments.Enchantment;
5+
import org.jetbrains.annotations.ApiStatus.Internal;
56
import org.jspecify.annotations.NullMarked;
67

8+
/**
9+
* An {@link Provider EnchantData.Provider} wrapping a platform-dependent provider.
10+
*/
11+
@Internal
712
@NullMarked
8-
class DelegateEnchantProvider implements Provider {
13+
public class DelegateEnchantProvider implements Provider {
914

1015
private final Provider delegate =
1116
ServerCapabilities.DATA_COMPONENT ? new ComponentEnchantProvider() : new MetaEnchantProvider();

enchanting-components/src/main/java/com/github/jikoo/planarenchanting/anvil/ComponentTemperer.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
import org.bukkit.inventory.ItemStack;
66
import org.jspecify.annotations.NullMarked;
77

8+
/**
9+
* A {@link Temperer} for {@link DataComponentType DataComponent}-based operations.
10+
*/
811
@NullMarked
9-
class ComponentTemperer implements Temperer<ItemStack> {
12+
public class ComponentTemperer implements Temperer<ItemStack> {
1013

11-
static final ComponentTemperer INSTANCE = new ComponentTemperer();
14+
public static final ComponentTemperer INSTANCE = new ComponentTemperer();
1215

1316
@Override
1417
public boolean hasChanged(ItemStack base, ItemStack addition, ItemStack result) {

enchanting-components/src/main/java/com/github/jikoo/planarenchanting/anvil/ComponentViewState.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
import org.bukkit.inventory.view.AnvilView;
55
import org.jspecify.annotations.NullMarked;
66

7+
/**
8+
* A {@link ViewState} for raw item access.
9+
*/
710
@NullMarked
8-
class ComponentViewState implements ViewState<ItemStack> {
11+
public class ComponentViewState implements ViewState<ItemStack> {
912

1013
private final AnvilView view;
1114
private final ItemStack base;
1215
private final ItemStack addition;
1316

14-
ComponentViewState(AnvilView view) {
17+
public ComponentViewState(AnvilView view) {
1518
this.view = view;
1619
ItemStack stack = view.getItem(0);
1720
this.base = stack != null ? stack : ItemStack.empty();

enchanting-components/src/main/java/com/github/jikoo/planarenchanting/util/ComponentEnchantProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
import com.github.jikoo.planarenchanting.util.EnchantData.Provider;
44
import io.papermc.paper.registry.keys.ItemTypeKeys;
55
import org.bukkit.enchantments.Enchantment;
6+
import org.jetbrains.annotations.ApiStatus.Internal;
67
import org.jspecify.annotations.NullMarked;
78

9+
/**
10+
* An {@link Provider EnchantData.Provider} for
11+
* {@link io.papermc.paper.datacomponent.DataComponentType DataComponent}-based {@link EnchantData}.
12+
*/
13+
@Internal
814
@NullMarked
9-
class ComponentEnchantProvider implements Provider {
15+
public class ComponentEnchantProvider implements Provider {
1016

1117
@Override
1218
public EnchantData of(Enchantment enchantment) {

enchanting-meta/src/main/java/com/github/jikoo/planarenchanting/anvil/MetaTemperer.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@
77
import org.bukkit.inventory.meta.Repairable;
88
import org.jspecify.annotations.NullMarked;
99

10+
/**
11+
* A {@link Temperer} for {@link ItemMeta}-based operations.
12+
*/
1013
@NullMarked
11-
class MetaTemperer implements Temperer<MetaCachedStack> {
14+
public class MetaTemperer implements Temperer<MetaCachedStack> {
1215

13-
static final MetaTemperer INSTANCE = new MetaTemperer();
16+
public static final MetaTemperer INSTANCE = new MetaTemperer();
1417

1518
@Override
1619
public boolean hasChanged(

enchanting-meta/src/main/java/com/github/jikoo/planarenchanting/anvil/MetaViewState.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
import org.bukkit.inventory.view.AnvilView;
44
import org.jspecify.annotations.NullMarked;
55

6+
/**
7+
* A {@link ViewState} wrapping contents with a {@link MetaCachedStack} for repeated meta
8+
* modification.
9+
*/
610
@NullMarked
7-
class MetaViewState implements ViewState<MetaCachedStack> {
11+
public class MetaViewState implements ViewState<MetaCachedStack> {
812

913
private final AnvilView view;
1014
private final MetaCachedStack base;
1115
private final MetaCachedStack addition;
1216

13-
MetaViewState(AnvilView view) {
17+
public MetaViewState(AnvilView view) {
1418
this.view = view;
1519
this.base = new MetaCachedStack(view.getItem(0));
1620
this.addition = new MetaCachedStack(view.getItem(1));

enchanting-meta/src/main/java/com/github/jikoo/planarenchanting/util/MetaEnchantProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,16 @@
88
import org.bukkit.NamespacedKey;
99
import org.bukkit.Registry;
1010
import org.bukkit.enchantments.Enchantment;
11+
import org.jetbrains.annotations.ApiStatus.Internal;
1112
import org.jspecify.annotations.NullMarked;
1213

14+
/**
15+
* An {@link Provider EnchantData.Provider} using pre-baked enchantment data. May not include more
16+
* recently added enchantments! Falls through to data for unbreaking.
17+
*/
18+
@Internal
1319
@NullMarked
14-
class MetaEnchantProvider implements Provider {
20+
public class MetaEnchantProvider implements Provider {
1521

1622
private final Map<NamespacedKey, EnchantData> data = new HashMap<>();
1723

0 commit comments

Comments
 (0)