Skip to content

Commit 3b0e222

Browse files
committed
Bump dependencies
1 parent 9765a12 commit 3b0e222

12 files changed

+162
-16
lines changed

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>me.zombie_striker</groupId>
77
<artifactId>QualityArmory</artifactId>
8-
<version>2.0.18-SNAPSHOT</version>
8+
<version>2.0.18</version>
99
<name>QualityArmory</name>
1010

1111
<properties>
@@ -172,7 +172,7 @@
172172
<dependency>
173173
<groupId>com.viaversion</groupId>
174174
<artifactId>viaversion-api</artifactId>
175-
<version>5.0.1</version>
175+
<version>5.2.1</version>
176176
<scope>provided</scope>
177177
</dependency>
178178

src/main/java/me/zombie_striker/customitemmanager/CustomItemManager.java

+30-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package me.zombie_striker.customitemmanager;
22

3+
import me.zombie_striker.customitemmanager.pack.ResourcepackProvider;
4+
import me.zombie_striker.customitemmanager.pack.StaticPackProvider;
35
import org.bukkit.Material;
6+
import org.bukkit.entity.Player;
47
import org.bukkit.inventory.ItemStack;
58

69
import java.io.File;
@@ -9,14 +12,37 @@
912

1013
public class CustomItemManager {
1114

12-
private static String resourcepack = null;
15+
private static ResourcepackProvider resourcepackProvider = null;
1316
private static HashMap<String, AbstractItem> customItemTypes = new HashMap<>();
1417

18+
/**
19+
* @deprecated Use {@link #getResourcepack(Player)} instead
20+
* @return the resourcepack URL
21+
*/
22+
@Deprecated
1523
public static String getResourcepack() {
16-
return resourcepack;
24+
return resourcepackProvider.getFor(null);
1725
}
18-
public static void setResourcepack(String url){
19-
resourcepack = url;
26+
27+
/**
28+
* @deprecated Use {@link #setResourcepack(ResourcepackProvider)} instead
29+
* @param url the resourcepack URL
30+
*/
31+
@Deprecated
32+
public static void setResourcepack(String url) {
33+
resourcepackProvider = new StaticPackProvider(url);
34+
}
35+
36+
public static String getResourcepack(Player player) {
37+
return resourcepackProvider.getFor(player);
38+
}
39+
40+
public static void setResourcepack(ResourcepackProvider provider) {
41+
resourcepackProvider = provider;
42+
}
43+
44+
public static ResourcepackProvider getResourcepackProvider() {
45+
return resourcepackProvider;
2046
}
2147

2248
public static Set<String> getCustomItemTypes(){return customItemTypes.keySet();}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package me.zombie_striker.customitemmanager.pack;
2+
3+
import me.zombie_striker.qg.hooks.ViaVersionHook;
4+
import org.bukkit.configuration.ConfigurationSection;
5+
import org.bukkit.entity.Player;
6+
import org.jetbrains.annotations.Nullable;
7+
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
/**
12+
* A {@link ResourcepackProvider} that provides different resourcepacks based on the player's version.
13+
* Make sure to put a default version at index 0.
14+
*/
15+
public class MultiVersionPackProvider implements ResourcepackProvider {
16+
private final Map<Integer, String> versions;
17+
18+
public MultiVersionPackProvider(Map<Integer, String> versions) {
19+
this.versions = versions;
20+
}
21+
22+
public MultiVersionPackProvider(ConfigurationSection config) {
23+
Map<Integer, String> versions = new HashMap<>();
24+
config.getKeys(false).forEach(key -> versions.put(Integer.parseInt(key), config.getString(key)));
25+
this.versions = versions;
26+
}
27+
28+
@Override
29+
public String getFor(@Nullable Player player) {
30+
int version = ViaVersionHook.getVersion(player);
31+
return versions.getOrDefault(version, versions.get(0));
32+
}
33+
34+
@Override
35+
public Object serialize() {
36+
Map<String, String> map = new HashMap<>();
37+
versions.forEach((k, v) -> map.put(k.toString(), v));
38+
39+
return map;
40+
}
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package me.zombie_striker.customitemmanager.pack;
2+
3+
import org.bukkit.entity.Player;
4+
import org.jetbrains.annotations.Nullable;
5+
6+
public interface ResourcepackProvider {
7+
8+
String getFor(@Nullable Player player);
9+
Object serialize();
10+
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package me.zombie_striker.customitemmanager.pack;
2+
3+
import org.bukkit.entity.Player;
4+
import org.jetbrains.annotations.Nullable;
5+
6+
public class StaticPackProvider implements ResourcepackProvider {
7+
private final String url;
8+
9+
public StaticPackProvider(String url) {
10+
this.url = url;
11+
}
12+
13+
@Override
14+
public String getFor(@Nullable Player player) {
15+
return this.url;
16+
}
17+
18+
@Override
19+
public Object serialize() {
20+
return url;
21+
}
22+
}

src/main/java/me/zombie_striker/customitemmanager/qa/versions/V1_13/CustomGunItem.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.zombie_striker.customitemmanager.qa.versions.V1_13;
22

33
import me.zombie_striker.customitemmanager.*;
4+
import me.zombie_striker.customitemmanager.pack.StaticPackProvider;
45
import me.zombie_striker.customitemmanager.qa.AbstractCustomGunItem;
56
import me.zombie_striker.qg.QAMain;
67
import me.zombie_striker.qg.api.QualityArmory;
@@ -31,7 +32,7 @@
3132
public class CustomGunItem extends AbstractCustomGunItem {
3233

3334
public CustomGunItem(){
34-
CustomItemManager.setResourcepack("https://www.dropbox.com/s/b04i5eqtqwrh5ub/QualityArmoryV1.0.40.zip?dl=1");
35+
CustomItemManager.setResourcepack(new StaticPackProvider("https://www.dropbox.com/s/b04i5eqtqwrh5ub/QualityArmoryV1.0.40.zip?dl=1"));
3536
}
3637
@Override
3738
public ItemStack getItem(Material material, int data, int variant) {

src/main/java/me/zombie_striker/customitemmanager/qa/versions/V1_14/CustomGunItem.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.cryptomorin.xseries.profiles.objects.ProfileInputType;
55
import com.cryptomorin.xseries.profiles.objects.Profileable;
66
import me.zombie_striker.customitemmanager.*;
7+
import me.zombie_striker.customitemmanager.pack.MultiVersionPackProvider;
78
import me.zombie_striker.customitemmanager.qa.AbstractCustomGunItem;
89
import me.zombie_striker.qg.QAMain;
910
import me.zombie_striker.qg.ammo.Ammo;
@@ -36,7 +37,11 @@ public class CustomGunItem extends AbstractCustomGunItem {
3637
private boolean overrideAttackSpeed = true;
3738

3839
public CustomGunItem(){
39-
CustomItemManager.setResourcepack("https://github.com/ZombieStriker/QualityArmory-Resourcepack/releases/download/latest/QualityArmory.zip");
40+
Map<Integer, String> versions = new HashMap<>();
41+
versions.put(0, "https://github.com/ZombieStriker/QualityArmory-Resourcepack/releases/download/latest/QualityArmory.zip");
42+
versions.put(21, "https://github.com/ZombieStriker/QualityArmory-Resourcepack/releases/download/latest/QualityArmory-21.zip");
43+
44+
CustomItemManager.setResourcepack(new MultiVersionPackProvider(versions));
4045
}
4146

4247
public static MaterialStorage m(int d) {

src/main/java/me/zombie_striker/customitemmanager/qa/versions/V1_8/CustomGunItem.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.zombie_striker.customitemmanager.qa.versions.V1_8;
22

33
import me.zombie_striker.customitemmanager.*;
4+
import me.zombie_striker.customitemmanager.pack.StaticPackProvider;
45
import me.zombie_striker.customitemmanager.qa.AbstractCustomGunItem;
56
import me.zombie_striker.qg.QAMain;
67
import me.zombie_striker.qg.api.QualityArmory;
@@ -28,7 +29,7 @@
2829
public class CustomGunItem extends AbstractCustomGunItem {
2930

3031
public CustomGunItem(){
31-
CustomItemManager.setResourcepack("https://www.dropbox.com/s/pjoeg5e8l3byauf/QualityArmory1.8v1.0.3.zip?dl=1");
32+
CustomItemManager.setResourcepack(new StaticPackProvider("https://www.dropbox.com/s/pjoeg5e8l3byauf/QualityArmory1.8v1.0.3.zip?dl=1"));
3233
}
3334
@Override
3435
public ItemStack getItem(Material material, int data, int variant) {

src/main/java/me/zombie_striker/qg/QAMain.java

+14-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import me.zombie_striker.customitemmanager.CustomItemManager;
1111
import me.zombie_striker.customitemmanager.MaterialStorage;
1212
import me.zombie_striker.customitemmanager.OLD_ItemFact;
13+
import me.zombie_striker.customitemmanager.pack.MultiVersionPackProvider;
14+
import me.zombie_striker.customitemmanager.pack.StaticPackProvider;
1315
import me.zombie_striker.customitemmanager.qa.AbstractCustomGunItem;
1416
import me.zombie_striker.customitemmanager.qa.ItemBridgePatch;
1517
import me.zombie_striker.customitemmanager.qa.versions.V1_13.CustomGunItem;
@@ -1159,12 +1161,20 @@ public void reloadVals() {
11591161
((AbstractCustomGunItem) CustomItemManager.getItemType("gun")).initIronsights(getDataFolder());
11601162

11611163
if (overrideURL) {
1162-
CustomItemManager.setResourcepack((String) a("DefaultResourcepack", CustomItemManager.getResourcepack()));
1164+
if (!getConfig().contains("DefaultResourcepack")) {
1165+
getConfig().set("DefaultResourcepack", CustomItemManager.getResourcepackProvider().serialize());
1166+
saveTheConfig = true;
1167+
} else {
1168+
if (getConfig().get("DefaultResourcepack") instanceof String)
1169+
CustomItemManager.setResourcepack(new StaticPackProvider(getConfig().getString("DefaultResourcepack")));
1170+
else {
1171+
CustomItemManager.setResourcepack(new MultiVersionPackProvider(getConfig().getConfigurationSection("DefaultResourcepack")));
1172+
}
1173+
}
11631174
} else {
11641175
if (!getConfig().contains("DefaultResourcepack")
11651176
|| !getConfig().getString("DefaultResourcepack").equals(CustomItemManager.getResourcepack())) {
1166-
getConfig().set("DefaultResourcepack", CustomItemManager.getResourcepack());
1167-
CustomItemManager.setResourcepack(CustomItemManager.getResourcepack());
1177+
getConfig().set("DefaultResourcepack", CustomItemManager.getResourcepackProvider().serialize());
11681178
saveTheConfig = true;
11691179
}
11701180
}
@@ -1446,7 +1456,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
14461456
}
14471457

14481458
player.sendMessage(prefix + S_RESOURCEPACK_DOWNLOAD);
1449-
player.sendMessage(CustomItemManager.getResourcepack());
1459+
player.sendMessage(CustomItemManager.getResourcepack(player));
14501460
player.sendMessage(prefix + S_RESOURCEPACK_BYPASS);
14511461

14521462
return true;

src/main/java/me/zombie_striker/qg/api/QualityArmory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ public void run() {
132132
}
133133

134134
if (QAMain.isVersionHigherThan(1, 19))
135-
player.setResourcePack(CustomItemManager.getResourcepack(), null, QAMain.kickIfDeniedRequest);
136-
else player.setResourcePack(CustomItemManager.getResourcepack());
135+
player.setResourcePack(CustomItemManager.getResourcepack(player), null, QAMain.kickIfDeniedRequest);
136+
else player.setResourcePack(CustomItemManager.getResourcepack(player));
137137

138138
} catch (Error | Exception e4) {
139139

140-
player.setResourcePack(CustomItemManager.getResourcepack());
140+
player.setResourcePack(CustomItemManager.getResourcepack(player));
141141
}
142142

143143
if (!QAMain.isVersionHigherThan(1, 9)) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package me.zombie_striker.qg.hooks;
2+
3+
import com.cryptomorin.xseries.reflection.XReflection;
4+
import com.viaversion.viaversion.api.Via;
5+
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
6+
import me.zombie_striker.qg.QAMain;
7+
import org.bukkit.entity.Player;
8+
9+
public final class ViaVersionHook {
10+
11+
public static int getVersion(Player player) {
12+
if (!QAMain.hasViaVersion) return XReflection.MINOR_NUMBER;
13+
14+
try {
15+
int version = Via.getAPI().getPlayerVersion(player.getUniqueId());
16+
return ProtocolVersion.getProtocols()
17+
.stream()
18+
.filter(pv -> pv.getVersion() == version)
19+
.findFirst()
20+
.map(pv -> Integer.parseInt(pv.getName().split("\\.")[1]))
21+
.orElse(XReflection.MINOR_NUMBER);
22+
} catch (Exception | Error e) {
23+
return XReflection.MINOR_NUMBER;
24+
}
25+
}
26+
}

src/main/resources/changelog.txt

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2.0.18
2+
- Fixed resourcepack for 1.21.4
3+
14
2.0.17
25
- 1.21.4 support
36
- Fixed gun duplication

0 commit comments

Comments
 (0)