Skip to content

Commit 49b1a69

Browse files
committed
Update to 1.21.1
1 parent 4d03628 commit 49b1a69

File tree

5 files changed

+40
-39
lines changed

5 files changed

+40
-39
lines changed

build.gradle.kts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
id("io.papermc.paperweight.userdev") version "1.7.1"
33
java
4-
id("com.github.johnrengelman.shadow") version "8.1.1"
4+
id("com.gradleup.shadow") version "8.3.3"
55
}
66

77
group = "net.azisaba.afnw"
@@ -47,11 +47,13 @@ dependencies {
4747
compileOnly("net.azisaba:ItemStash:1.0.0-SNAPSHOT")
4848
compileOnly("net.essentialsx:EssentialsX:2.20.1")
4949
compileOnly("io.lumine:Mythic-Dist:5.4.0")
50-
compileOnly("io.papermc.paper:paper-api:1.20.2-R0.1-SNAPSHOT")
51-
paperweight.paperDevBundle("1.20.2-R0.1-SNAPSHOT")
50+
compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
51+
compileOnly("net.azisaba:TAB-BukkitBridge:3.1.0")
52+
compileOnly("org.jetbrains:annotations:26.0.1")
53+
paperweight.paperDevBundle("1.21.1-R0.1-SNAPSHOT")
5254
}
5355

54-
java.toolchain.languageVersion.set(JavaLanguageVersion.of(17))
56+
java.toolchain.languageVersion.set(JavaLanguageVersion.of(21))
5557

5658
tasks {
5759
compileJava {

src/main/java/net/azisaba/afnw/afnwcore2/AfnwCore2.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import net.minecraft.world.entity.ai.attributes.RangedAttribute;
2020
import org.bukkit.Bukkit;
2121
import org.bukkit.World;
22-
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftDolphin;
22+
import org.bukkit.craftbukkit.entity.CraftDolphin;
2323
import org.bukkit.entity.Dolphin;
2424
import org.bukkit.plugin.PluginManager;
2525
import org.bukkit.plugin.java.JavaPlugin;
@@ -108,7 +108,7 @@ public void onEnable() {
108108
Bukkit.getScheduler().runTask(this, () -> {
109109
if (Bukkit.getPluginManager().isPluginEnabled("TAB")) {
110110
TheTAB.enable();
111-
getLogger().info("TABの連携が有効になりました。");
111+
getLogger().info("TABの連携が有効です。");
112112
} else {
113113
getLogger().info("TABの連携は無効です。");
114114
}
Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,24 @@
11
package net.azisaba.afnw.afnwcore2.util;
22

33
import net.azisaba.afnw.afnwcore2.AfnwCore2;
4+
import net.azisaba.tabbukkitbridge.data.DataKey;
45
import org.bukkit.entity.Player;
5-
import org.jetbrains.annotations.NotNull;
6-
7-
import java.util.function.Consumer;
8-
import java.util.function.Function;
96

107
public class TheTAB {
118
private static boolean enabled = false;
129

1310
public static void enable() {
11+
if (enabled) return;
12+
enabled = true;
1413
try {
15-
registerPlaceholder("%pvp_enabled%", 1000, player -> AfnwCore2.getPlugin(AfnwCore2.class).pvpEnabled.contains(player.getUniqueId()));
16-
Class.forName("me.neznamy.tab.shared.placeholders.conditions.Condition").getMethod("finishSetups").invoke(null);
17-
if (enabled) return;
18-
Object tabAPI = Class.forName("me.neznamy.tab.api.TabAPI").getMethod("getInstance").invoke(null);
19-
Class.forName("me.neznamy.tab.api.event.EventBus")
20-
.getMethod("register", Class.class, Consumer.class)
21-
// TODO: me.neznamy.tab.api.event.EventHandler
22-
.invoke(tabAPI, Class.forName("me.neznamy.tab.api.event.plugin.TabLoadEvent"), (Consumer<Object>) (e) -> enable());
23-
enabled = true;
24-
} catch (ReflectiveOperationException e) {
25-
AfnwCore2.getPluginLogger().warn("Failed to execute Condition#finishSetups", e);
14+
DataKey<Player, Boolean> pvpEnabled = new DataKey<>(false);
15+
pvpEnabled.register(p -> true, player -> {
16+
if (player == null) return false;
17+
return AfnwCore2.getPlugin(AfnwCore2.class).pvpEnabled.contains(player.getUniqueId());
18+
});
19+
pvpEnabled.getPlaceholders().add("pvp_enabled");
20+
} catch (Exception | NoClassDefFoundError e) {
21+
e.printStackTrace();
2622
}
2723
}
28-
29-
private static void registerPlaceholder(String identifier, int refreshInterval, @NotNull Function<Player, Object> function) throws ReflectiveOperationException {
30-
Object tabAPI = Class.forName("me.neznamy.tab.api.TabAPI").getMethod("getInstance").invoke(null);
31-
Object placeholderManager = Class.forName("me.neznamy.tab.api.TabAPI").getMethod("getPlaceholderManager").invoke(tabAPI);
32-
Class.forName("me.neznamy.tab.api.placeholder.PlaceholderManager")
33-
.getMethod("registerPlayerPlaceholder", String.class, int.class, Function.class)
34-
.invoke(placeholderManager, identifier, refreshInterval, (Function<Object, Object>) (obj) -> {
35-
try {
36-
return function.apply((Player) Class.forName("me.neznamy.tab.api.TabPlayer").getMethod("getPlayer").invoke(obj));
37-
} catch (ReflectiveOperationException e) {
38-
throw new RuntimeException(e);
39-
}
40-
});
41-
}
4224
}

src/main/java/net/azisaba/afnw/afnwcore2/util/item/ItemUtil.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package net.azisaba.afnw.afnwcore2.util.item;
22

33
import net.azisaba.itemstash.ItemStash;
4+
import net.minecraft.core.component.DataComponents;
5+
import net.minecraft.nbt.CompoundTag;
6+
import net.minecraft.world.item.component.CustomData;
47
import org.bukkit.Bukkit;
5-
import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;
8+
import org.bukkit.craftbukkit.inventory.CraftItemStack;
69
import org.bukkit.inventory.ItemStack;
710
import org.bukkit.plugin.Plugin;
811
import org.jetbrains.annotations.Contract;
@@ -22,14 +25,28 @@ public static void addToStashIfEnabledAsync(@NotNull Plugin plugin, @NotNull UUI
2225
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> addToStashIfEnabled(uuid, stack));
2326
}
2427

28+
public static @Nullable CompoundTag getCustomData(@NotNull ItemStack stack) {
29+
CustomData customData = CraftItemStack.asNMSCopy(stack).get(DataComponents.CUSTOM_DATA);
30+
if (customData == null) return null;
31+
return customData.copyTag();
32+
}
33+
2534
public static @NotNull String getStringTag(@NotNull ItemStack stack, @NotNull String name) {
26-
return CraftItemStack.asNMSCopy(stack).getOrCreateTag().getString(name);
35+
CompoundTag tag = getCustomData(stack);
36+
if (tag == null) return "";
37+
return tag.getString(name);
38+
}
39+
40+
public static @NotNull CompoundTag getCompoundTag(@NotNull ItemStack stack, @NotNull String name) {
41+
CompoundTag tag = getCustomData(stack);
42+
if (tag == null) return new CompoundTag();
43+
return tag.getCompound(name);
2744
}
2845

2946
@Contract("null -> null")
3047
public static @Nullable String getMythicType(@Nullable ItemStack stack) {
3148
if (stack == null) return null;
32-
String s = getStringTag(stack, "MYTHIC_TYPE");
49+
String s = getCompoundTag(stack, "PublicBukkitValues").getString("mythicmobs:type");
3350
if (s.isBlank()) return null;
3451
return s;
3552
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: That world, once again.
99
depend: [ Essentials, Votifier ]
1010
softdepend:
1111
- ItemStash
12-
- TAB
12+
- TAB-BukkitBridge
1313
website: https://github.com/AfnwTeam/AfnwCore2
1414

1515
permissions:

0 commit comments

Comments
 (0)