Skip to content

Commit 402095f

Browse files
committed
Real 1.20.6 release
1 parent 28aef22 commit 402095f

13 files changed

+91
-46
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ allprojects {
2424
apply(plugin = "java-library");
2525
apply(plugin = "io.freefair.lombok")
2626

27-
version = "2.1.1"
27+
version = "2.1.2"
2828

2929
repositories {
3030
mavenCentral()

plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies {
77
compileOnly("com.github.MilkBowl:VaultAPI:1.7")
88
compileOnly("com.github.koca2000:NoteBlockAPI:1.6.1")
99

10-
api("com.github.cryptomorin:XSeries:9.8.0")
10+
api("com.github.cryptomorin:XSeries:11.0.0")
1111
api("io.github.bananapuncher714:nbteditor:7.19.0")
1212
api("org.bstats:bstats-bukkit:3.0.2")
1313

plugin/src/main/java/ru/spliterash/musicbox/Lang.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ public enum Lang {
3737
"&7Оригинальный автор: &b{original_author}"
3838
)
3939
),
40-
NEW_INSTRUMENT(
41-
"&cThis song contains instrument, available in 1.14",
42-
"&cЭта музыка содержит инструменты, доступные только в 1.14"),
4340
GUI_TITLE("&l&3MusicBox &8{container} &0{page}&7/&0{last_page}"),
4441
FOLDER_FORMAT("&e{folder}"),
4542
CURRENT_PLAYNING(

plugin/src/main/java/ru/spliterash/musicbox/customPlayers/objects/jukebox/JukeboxPlayer.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ public static void onJukeboxClick(Jukebox jukebox, ItemStack clickedItem, Player
4343
return;
4444
MusicBoxSong song = MusicBoxSongManager.findByItem(clickedItem).orElse(null);
4545
if (song == null) {
46-
if (MusicBoxSongManager.tryReplaceLegacyItem(e.getPlayer(), clickedItem))
47-
e.setCancelled(true);
4846
return;
4947
}
5048

plugin/src/main/java/ru/spliterash/musicbox/song/MusicBoxSong.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
import com.cryptomorin.xseries.XMaterial;
44
import com.xxmicloxx.NoteBlockAPI.model.Song;
55
import com.xxmicloxx.NoteBlockAPI.utils.NBSDecoder;
6-
import io.github.bananapuncher714.nbteditor.NBTEditor;
76
import lombok.Getter;
87
import org.bukkit.inventory.ItemStack;
98
import org.bukkit.inventory.meta.ItemMeta;
109
import ru.spliterash.musicbox.Lang;
1110
import ru.spliterash.musicbox.utils.*;
11+
import ru.spliterash.musicbox.utils.nbt.NBTFactory;
12+
import ru.spliterash.musicbox.utils.nbt.NbtConstants;
1213

1314
import java.io.File;
1415
import java.lang.ref.WeakReference;
@@ -27,14 +28,12 @@ public class MusicBoxSong {
2728
private final short length;
2829
private final float speed;
2930
private transient WeakReference<Song> songReference;
30-
private final boolean newInstruments;
3131
private final int hash;
3232

3333
MusicBoxSong(File songFile, MusicBoxSongContainer container) {
3434
this.file = songFile;
3535
this.container = container;
3636
Song song = getSong();
37-
this.newInstruments = SongUtils.containsNewInstrument(song);
3837
this.name = StringUtils.t(StringUtils.getOrEmpty(song.getTitle(), () -> FileUtils.getFilename(file.getName())));
3938
this.length = song.getLength();
4039
this.speed = song.getSpeed();
@@ -43,7 +42,7 @@ public class MusicBoxSong {
4342
hoverMap.put("{length}", time);
4443
hoverMap.put("{author}", song.getAuthor());
4544
hoverMap.put("{original_author}", song.getOriginalAuthor());
46-
hoverMap.put("{name}",getName());
45+
hoverMap.put("{name}", getName());
4746
}
4847

4948
public int getDuration() {
@@ -67,13 +66,10 @@ public ItemStack getSongStack(XMaterial material, String itemName, List<String>
6766
ItemMeta meta = stack.getItemMeta();
6867
meta.setDisplayName(itemName);
6968
List<String> list = ArrayUtils.replaceOrRemove(Lang.SONG_LORE.toList(), hoverMap);
70-
if (newInstruments) {
71-
list.add(Lang.NEW_INSTRUMENT.toString());
72-
}
7369
list.addAll(extraLines);
7470
meta.setLore(list);
7571
stack.setItemMeta(meta);
76-
stack = NBTEditor.set(stack, getHash(), MusicBoxSongManager.NBT_NAME);
72+
stack = NBTFactory.NBT_HANDLER.setNbt(stack, NbtConstants.NBT_NAME, getHash());
7773
if (glow)
7874
stack = ItemUtils.glow(stack);
7975
return stack;

plugin/src/main/java/ru/spliterash/musicbox/song/MusicBoxSongManager.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package ru.spliterash.musicbox.song;
22

3-
import io.github.bananapuncher714.nbteditor.NBTEditor;
43
import lombok.Getter;
54
import lombok.experimental.UtilityClass;
6-
import org.bukkit.entity.Player;
75
import org.bukkit.inventory.ItemStack;
8-
import ru.spliterash.musicbox.Lang;
9-
import ru.spliterash.musicbox.song.songContainers.types.SongContainer;
106
import ru.spliterash.musicbox.song.songContainers.SongContainerFactory;
117
import ru.spliterash.musicbox.song.songContainers.factory.FolderContainerFactory;
128
import ru.spliterash.musicbox.song.songContainers.factory.ListContainerFactory;
139
import ru.spliterash.musicbox.song.songContainers.factory.SingletonContainerFactory;
10+
import ru.spliterash.musicbox.song.songContainers.types.SongContainer;
11+
import ru.spliterash.musicbox.utils.nbt.NBTFactory;
12+
import ru.spliterash.musicbox.utils.nbt.NbtConstants;
1413

1514
import java.io.File;
1615
import java.util.*;
@@ -20,10 +19,6 @@
2019

2120
public class MusicBoxSongManager {
2221
public final String MASTER_CONTAINER = "MASTER";
23-
/**
24-
* NBT тег чтобы определить является ли пластинка кастомной
25-
*/
26-
public final String NBT_NAME = "musicBoxSongHash";
2722
private final Set<SongContainerFactory<?>> factorySet = new HashSet<>();
2823
@Getter
2924
private final SongContainer masterContainer = new MasterContainer();
@@ -82,7 +77,7 @@ public Optional<MusicBoxSong> findSongByHash(int hash) {
8277
public Optional<MusicBoxSong> findByItem(ItemStack stack) {
8378
if (stack == null)
8479
return Optional.empty();
85-
int hash = NBTEditor.getInt(stack, NBT_NAME);
80+
int hash = NBTFactory.NBT_HANDLER.getNbt(stack, NbtConstants.NBT_NAME);
8681
if (hash != 0)
8782
return findSongByHash(hash);
8883
else
@@ -93,25 +88,6 @@ public Optional<MusicBoxSongContainer> findContainerById(int id) {
9388
return Optional.of(rootContainer.findById(id));
9489
}
9590

96-
public boolean tryReplaceLegacyItem(Player player, ItemStack stack) {
97-
if (stack == null)
98-
return false;
99-
String musicBoxLegacyTagValue = NBTEditor.getString(stack, "musicbox");
100-
if (musicBoxLegacyTagValue == null)
101-
return false;
102-
MusicBoxSong song = findByName(musicBoxLegacyTagValue).orElse(null);
103-
if (song == null) {
104-
player.sendMessage(Lang.LEGACY_DISC_NOT_FOUND.toString("{song}", musicBoxLegacyTagValue));
105-
} else {
106-
player.getInventory().remove(stack);
107-
player.getInventory().addItem(song.getSongStack());
108-
player.sendMessage(Lang.LEGACY_DISC_REPLACE.toString());
109-
}
110-
return true;
111-
}
112-
113-
// Ломбук не умеет на лету обрабатывать UtilityClass
114-
11591
/**
11692
* Имплементация контейнера, содержащая всё что только есть
11793
*/

plugin/src/main/java/ru/spliterash/musicbox/utils/ItemUtils.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.cryptomorin.xseries.XEnchantment;
44
import com.cryptomorin.xseries.XMaterial;
5-
import io.github.bananapuncher714.nbteditor.NBTEditor;
65
import lombok.experimental.UtilityClass;
76
import org.bukkit.Material;
87
import org.bukkit.enchantments.Enchantment;
@@ -20,7 +19,7 @@
2019

2120
@UtilityClass
2221
public class ItemUtils {
23-
private final Enchantment enchantment = XEnchantment.PROTECTION_EXPLOSIONS.getEnchant();
22+
private final Enchantment enchantment = XEnchantment.BLAST_PROTECTION.getEnchant();
2423

2524
public ItemStack glow(ItemStack stack) {
2625
ItemMeta meta = stack.getItemMeta();
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ru.spliterash.musicbox.utils.nbt;
2+
3+
import org.bukkit.NamespacedKey;
4+
import org.bukkit.inventory.ItemStack;
5+
import org.bukkit.inventory.meta.ItemMeta;
6+
import org.bukkit.inventory.meta.tags.ItemTagType;
7+
import org.jetbrains.annotations.Nullable;
8+
import ru.spliterash.musicbox.MusicBox;
9+
10+
public class BukkitNbtHandler implements NBTHandler {
11+
@Override
12+
public ItemStack setNbt(ItemStack item, String key, Integer value) {
13+
ItemStack newItem = item.clone();
14+
15+
ItemMeta meta = newItem.getItemMeta();
16+
meta.getCustomTagContainer().setCustomTag(new NamespacedKey(MusicBox.getInstance(), key), ItemTagType.INTEGER, value);
17+
newItem.setItemMeta(meta);
18+
19+
return newItem;
20+
}
21+
22+
@Override
23+
public @Nullable int getNbt(ItemStack item, String key) {
24+
ItemMeta meta = item.getItemMeta();
25+
Integer value = meta.getCustomTagContainer().getCustomTag(new NamespacedKey(MusicBox.getInstance(), key), ItemTagType.INTEGER);
26+
if (value == null)
27+
value = 0;
28+
29+
return value;
30+
}
31+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package ru.spliterash.musicbox.utils.nbt;
2+
3+
import ru.spliterash.musicbox.minecraft.nms.NMSUtils;
4+
5+
public class NBTFactory {
6+
public static final NBTHandler NBT_HANDLER;
7+
8+
static {
9+
String raw = NMSUtils.getRawVersion();
10+
int iV = NMSUtils.parseMajorVersion(raw);
11+
12+
if (iV >= 13) {
13+
NBT_HANDLER = new BukkitNbtHandler();
14+
} else {
15+
NBT_HANDLER = new NbtEditorHandler();
16+
}
17+
}
18+
19+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package ru.spliterash.musicbox.utils.nbt;
2+
3+
import org.bukkit.inventory.ItemStack;
4+
5+
public interface NBTHandler {
6+
ItemStack setNbt(ItemStack item, String key, Integer value);
7+
8+
int getNbt(ItemStack item, String key);
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package ru.spliterash.musicbox.utils.nbt;
2+
3+
public class NbtConstants {
4+
public static final String NBT_NAME = "song_hash";
5+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package ru.spliterash.musicbox.utils.nbt;
2+
3+
import io.github.bananapuncher714.nbteditor.NBTEditor;
4+
import org.bukkit.inventory.ItemStack;
5+
6+
public class NbtEditorHandler implements NBTHandler {
7+
@Override
8+
public ItemStack setNbt(ItemStack item, String key, Integer value) {
9+
return NBTEditor.set(item, value, key);
10+
}
11+
12+
@Override
13+
public int getNbt(ItemStack item, String key) {
14+
return NBTEditor.getInt(item, key);
15+
}
16+
}

settings.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
rootProject.name = 'MusicBox'
22

33
include "plugin"
4-
include "modern_plugin"
54
include "nms:shared"
65
include "nms:versions:12"
76
include "nms:versions:13-16"

0 commit comments

Comments
 (0)