Skip to content

Commit bb38e5d

Browse files
authored
Support 1.21-1.21.2
**This build should support 1.21-1.21.2 but it is experimental and should be used at your own risk!**
1 parent 3544459 commit bb38e5d

File tree

76 files changed

+1906
-1665
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1906
-1665
lines changed

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,13 @@
354354
</dependency>
355355

356356
<!-- Shaded packages -->
357+
358+
<dependency>
359+
<groupId>com.github.Slimefun.dough</groupId>
360+
<artifactId>dough-api</artifactId>
361+
<version>cb22e71335</version>
362+
<scope>compile</scope>
363+
</dependency>
357364
<dependency>
358365
<groupId>com.github.Slimefun.dough</groupId>
359366
<artifactId>dough-api</artifactId>

src/main/java/io/github/thebusybiscuit/slimefun4/api/exceptions/WrongItemStackException.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/GPSNetwork.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ public void openTransmitterControlPanel(@Nonnull Player p) {
149149
menu.addItem(slot, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
150150
}
151151

152-
menu.addItem(2, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER, im -> {
152+
menu.addItem(2, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER.item(), im -> {
153153
im.setDisplayName(ChatColor.GRAY + Slimefun.getLocalization().getMessage(p, "machines.GPS_CONTROL_PANEL.transmitters"));
154154
im.setLore(null);
155155
}));
156156

157157
menu.addMenuClickHandler(2, ChestMenuUtils.getEmptyClickHandler());
158158

159159
int complexity = getNetworkComplexity(p.getUniqueId());
160-
menu.addItem(4, CustomItemStack.create(SlimefunItems.GPS_CONTROL_PANEL, "&7Network Info", "", "&8\u21E8 &7Status: " + getStatusText(p, complexity), "&8\u21E8 &7Complexity: &f" + complexity));
160+
menu.addItem(4, CustomItemStack.create(SlimefunItems.GPS_CONTROL_PANEL.item(), "&7Network Info", "", "&8\u21E8 &7Status: " + getStatusText(p, complexity), "&8\u21E8 &7Complexity: &f" + complexity));
161161
menu.addMenuClickHandler(4, ChestMenuUtils.getEmptyClickHandler());
162162

163163
menu.addItem(6, CustomItemStack.create(HeadTexture.GLOBE_OVERWORLD.getAsItemStack(), "&7" + Slimefun.getLocalization().getMessage(p, "machines.GPS_CONTROL_PANEL.waypoints"), "", ChatColor.GRAY + "\u21E8 " + Slimefun.getLocalization().getMessage(p, "guide.tooltips.open-itemgroup")));
@@ -177,7 +177,7 @@ public void openTransmitterControlPanel(@Nonnull Player p) {
177177
if (sfi instanceof GPSTransmitter transmitter) {
178178
int slot = inventory[index];
179179

180-
menu.addItem(slot, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER, "&bGPS Transmitter", "&8\u21E8 &7World: &f" + l.getWorld().getName(), "&8\u21E8 &7X: &f" + l.getX(), "&8\u21E8 &7Y: &f" + l.getY(), "&8\u21E8 &7Z: &f" + l.getZ(), "", "&8\u21E8 &7Signal Strength: &f" + transmitter.getMultiplier(l.getBlockY()), "&8\u21E8 &7Ping: &f" + NumberUtils.roundDecimalNumber(1000D / l.getY()) + "ms"));
180+
menu.addItem(slot, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER.item(), "&bGPS Transmitter", "&8\u21E8 &7World: &f" + l.getWorld().getName(), "&8\u21E8 &7X: &f" + l.getX(), "&8\u21E8 &7Y: &f" + l.getY(), "&8\u21E8 &7Z: &f" + l.getZ(), "", "&8\u21E8 &7Signal Strength: &f" + transmitter.getMultiplier(l.getBlockY()), "&8\u21E8 &7Ping: &f" + NumberUtils.roundDecimalNumber(1000D / l.getY()) + "ms"));
181181
menu.addMenuClickHandler(slot, ChestMenuUtils.getEmptyClickHandler());
182182

183183
index++;
@@ -232,14 +232,14 @@ public void openWaypointControlPanel(@Nonnull Player p) {
232232
menu.addItem(slot, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
233233
}
234234

235-
menu.addItem(2, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER, "&7" + Slimefun.getLocalization().getMessage(p, "machines.GPS_CONTROL_PANEL.transmitters"), "", ChatColor.GRAY + "\u21E8 " + Slimefun.getLocalization().getMessage(p, "guide.tooltips.open-itemgroup")));
235+
menu.addItem(2, CustomItemStack.create(SlimefunItems.GPS_TRANSMITTER.item(), "&7" + Slimefun.getLocalization().getMessage(p, "machines.GPS_CONTROL_PANEL.transmitters"), "", ChatColor.GRAY + "\u21E8 " + Slimefun.getLocalization().getMessage(p, "guide.tooltips.open-itemgroup")));
236236
menu.addMenuClickHandler(2, (pl, slot, item, action) -> {
237237
openTransmitterControlPanel(pl);
238238
return false;
239239
});
240240

241241
int complexity = getNetworkComplexity(p.getUniqueId());
242-
menu.addItem(4, CustomItemStack.create(SlimefunItems.GPS_CONTROL_PANEL, "&7Network Info", "", "&8\u21E8 &7Status: " + (complexity > 0 ? "&2&lONLINE" : "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &f" + complexity));
242+
menu.addItem(4, CustomItemStack.create(SlimefunItems.GPS_CONTROL_PANEL.item(), "&7Network Info", "", "&8\u21E8 &7Status: " + (complexity > 0 ? "&2&lONLINE" : "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &f" + complexity));
243243
menu.addMenuClickHandler(4, ChestMenuUtils.getEmptyClickHandler());
244244

245245
menu.addItem(6, CustomItemStack.create(HeadTexture.GLOBE_OVERWORLD.getAsItemStack(), "&7" + Slimefun.getLocalization().getMessage(p, "machines.GPS_CONTROL_PANEL.waypoints")));

src/main/java/io/github/thebusybiscuit/slimefun4/api/items/SlimefunItem.java

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import io.github.thebusybiscuit.slimefun4.api.exceptions.IncompatibleItemHandlerException;
3232
import io.github.thebusybiscuit.slimefun4.api.exceptions.MissingDependencyException;
3333
import io.github.thebusybiscuit.slimefun4.api.exceptions.UnregisteredItemException;
34-
import io.github.thebusybiscuit.slimefun4.api.exceptions.WrongItemStackException;
3534
import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
3635
import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType;
3736
import io.github.thebusybiscuit.slimefun4.api.researches.Research;
@@ -153,7 +152,7 @@ public SlimefunItem(ItemGroup itemGroup, SlimefunItemStack item, RecipeType reci
153152
Validate.notNull(recipeType, "'recipeType' is not allowed to be null!");
154153

155154
this.itemGroup = itemGroup;
156-
this.itemStackTemplate = item;
155+
this.itemStackTemplate = item.item();
157156
this.id = item.getItemId();
158157
this.recipeType = recipeType;
159158
this.recipe = recipe;
@@ -219,7 +218,7 @@ protected SlimefunItem(ItemGroup itemGroup, ItemStack item, String id, RecipeTyp
219218
* @return The {@link ItemStack} that this {@link SlimefunItem} represents
220219
*/
221220
public @Nonnull ItemStack getItem() {
222-
return itemStackTemplate;
221+
return itemStackTemplate.clone();
223222
}
224223

225224
/**
@@ -500,11 +499,6 @@ public void register(@Nonnull SlimefunAddon addon) {
500499
this.itemHandlers.clear();
501500
}
502501

503-
// Lock the SlimefunItemStack from any accidental manipulations
504-
if (itemStackTemplate instanceof SlimefunItemStack stack && isItemStackImmutable()) {
505-
stack.lock();
506-
}
507-
508502
postRegister();
509503

510504
// handle runtime-registrations / auto-loading
@@ -580,20 +574,6 @@ private void loadItemHandlers() {
580574
}
581575
}
582576

583-
/**
584-
* This method returns whether the original {@link SlimefunItemStack} of this
585-
* {@link SlimefunItem} is immutable.
586-
*
587-
* If <code>true</code> is returned, then any changes to the original {@link SlimefunItemStack}
588-
* will be rejected with a {@link WrongItemStackException}.
589-
* This ensures integrity so developers don't accidentally damage the wrong {@link ItemStack}.
590-
*
591-
* @return Whether the original {@link SlimefunItemStack} is immutable.
592-
*/
593-
protected boolean isItemStackImmutable() {
594-
return true;
595-
}
596-
597577
/**
598578
* This method checks if the dependencies have been set up correctly.
599579
*
@@ -773,11 +753,6 @@ public boolean isItem(@Nullable ItemStack item) {
773753
return false;
774754
}
775755

776-
// If the given item is a SlimefunitemStack, simply compare the id
777-
if (item instanceof SlimefunItemStack stack) {
778-
return getId().equals(stack.getItemId());
779-
}
780-
781756
if (item.hasItemMeta()) {
782757
Optional<String> itemId = Slimefun.getItemDataService().getItemData(item);
783758

@@ -912,14 +887,6 @@ public final void addOfficialWikipage(@Nonnull String page) {
912887
* @return This item's name in {@link ItemStack} form
913888
*/
914889
public final @Nonnull String getItemName() {
915-
if (itemStackTemplate instanceof SlimefunItemStack) {
916-
Optional<String> name = ((SlimefunItemStack) itemStackTemplate).getItemMetaSnapshot().getDisplayName();
917-
918-
if (name.isPresent()) {
919-
return name.get();
920-
}
921-
}
922-
923890
return ItemUtils.getItemName(itemStackTemplate);
924891
}
925892

@@ -1185,6 +1152,19 @@ public final int hashCode() {
11851152
return Optional.ofNullable(getById(id));
11861153
}
11871154

1155+
public static @Nullable SlimefunItem getByItem(@Nullable SlimefunItemStack slimefunItemStack) {
1156+
if (slimefunItemStack == null) {
1157+
return null;
1158+
}
1159+
1160+
var delegate = slimefunItemStack.item();
1161+
if (delegate.getType() == Material.AIR) {
1162+
return null;
1163+
}
1164+
1165+
return getById(slimefunItemStack.getItemId());
1166+
}
1167+
11881168
/**
11891169
* Retrieve a {@link SlimefunItem} from an {@link ItemStack}.
11901170
*
@@ -1197,10 +1177,6 @@ public final int hashCode() {
11971177
return null;
11981178
}
11991179

1200-
if (item instanceof SlimefunItemStack stack) {
1201-
return getById(stack.getItemId());
1202-
}
1203-
12041180
Optional<String> itemID = Slimefun.getItemDataService().getItemData(item);
12051181

12061182
return itemID.map(SlimefunItem::getById).orElse(null);

0 commit comments

Comments
 (0)