mirror of
https://github.com/songoda/EpicBosses.git
synced 2024-09-30 06:18:03 +02:00
1.0.0-SNAPSHOT-U203c
+ Finished implementing the Legacy version
This commit is contained in:
parent
ea848757d2
commit
b2fd40eb1c
8
TODO
8
TODO
@ -1,11 +1,3 @@
|
|||||||
00:30 -> Add HolographicDisplay/PlaceholderAPI support for custom placeholders on AutoSpawnInterval times
|
|
||||||
01:00 -> Add a new branch for the plugin and add support for Legacy version
|
|
||||||
|
|
||||||
-----------
|
|
||||||
1:30 hrs
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------- TO DO AFTER RELEASE ---------------------------------------------------
|
------------------------------------- TO DO AFTER RELEASE ---------------------------------------------------
|
||||||
02:00 -> Randomly in the wilderness, bosses will spawn with x chance within coords as a player is loading chunks
|
02:00 -> Randomly in the wilderness, bosses will spawn with x chance within coords as a player is loading chunks
|
||||||
00:45 -> Randomly from a spawner, bosses will spawn with x chance within coords when a spawner is spawning mobs of the same type
|
00:45 -> Randomly from a spawner, bosses will spawn with x chance within coords when a spawner is spawning mobs of the same type
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
"1": {
|
"1": {
|
||||||
"1": {
|
"1": {
|
||||||
"items": {
|
"items": {
|
||||||
"SKEco500": 30.0,
|
"SKMainHand": 15.0,
|
||||||
"SKEco2500": 50.0,
|
"SKOffHand": 15.0,
|
||||||
"SKEco5000": 10.0
|
"SKHelmet": 15.0,
|
||||||
|
"SKLeggings": 30.0,
|
||||||
|
"SKChestplate": 30.0,
|
||||||
|
"SKBoots": 30.0
|
||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
"SKEco500": 30.0,
|
"SKEco500": 30.0,
|
||||||
|
@ -61,15 +61,15 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"SKHelmet": {
|
"SKHelmet": {
|
||||||
"type": "GOLDEN_HELMET",
|
"type": "GOLD_HELMET",
|
||||||
"enchants": [ "protection:4", "unbreaking:3" ]
|
"enchants": [ "protection:4", "unbreaking:3" ]
|
||||||
},
|
},
|
||||||
"SKChestplate": {
|
"SKChestplate": {
|
||||||
"type": "GOLDEN_CHESTPLATE",
|
"type": "GOLD_CHESTPLATE",
|
||||||
"enchants": [ "protection:4", "unbreaking:3" ]
|
"enchants": [ "protection:4", "unbreaking:3" ]
|
||||||
},
|
},
|
||||||
"SKLeggings": {
|
"SKLeggings": {
|
||||||
"type": "GOLDEN_LEGGINGS",
|
"type": "GOLD_LEGGINGS",
|
||||||
"enchants": [ "protection:4", "unbreaking:3" ]
|
"enchants": [ "protection:4", "unbreaking:3" ]
|
||||||
},
|
},
|
||||||
"SKBoots": {
|
"SKBoots": {
|
||||||
@ -81,7 +81,7 @@
|
|||||||
"enchants": [ "sharpness:4", "unbreaking:3" ]
|
"enchants": [ "sharpness:4", "unbreaking:3" ]
|
||||||
},
|
},
|
||||||
"SKOffHand": {
|
"SKOffHand": {
|
||||||
"type": "SHIELD"
|
"type": "STICK"
|
||||||
},
|
},
|
||||||
"SKCustomDrop1": {
|
"SKCustomDrop1": {
|
||||||
"type": "STONE",
|
"type": "STONE",
|
||||||
|
@ -18,7 +18,7 @@ MainMenu:
|
|||||||
Settings:
|
Settings:
|
||||||
emptySpaceFiller: true
|
emptySpaceFiller: true
|
||||||
EmptySpaceFiller:
|
EmptySpaceFiller:
|
||||||
type: STAINED_THIN_GLASS
|
type: STAINED_GLASS_PANE
|
||||||
name: '&7'
|
name: '&7'
|
||||||
Items:
|
Items:
|
||||||
'2':
|
'2':
|
||||||
|
@ -36,7 +36,7 @@ public class EntityTypeEditorPanel extends SubVariablePanelHandler<BossEntity, E
|
|||||||
@Override
|
@Override
|
||||||
public void fillPanel(Panel panel, BossEntity bossEntity, EntityStatsElement entityStatsElement) {
|
public void fillPanel(Panel panel, BossEntity bossEntity, EntityStatsElement entityStatsElement) {
|
||||||
List<EntityType> list = Arrays.stream(EntityType.values()).filter(EntityType::isSpawnable).collect(Collectors.toList());
|
List<EntityType> list = Arrays.stream(EntityType.values()).filter(EntityType::isSpawnable).collect(Collectors.toList());
|
||||||
Map<EntityType, Material> filteredMap = getFilteredMap(list);
|
Map<EntityType, Short> filteredMap = getFilteredMap(list);
|
||||||
List<EntityType> filteredList = new ArrayList<>(filteredMap.keySet());
|
List<EntityType> filteredList = new ArrayList<>(filteredMap.keySet());
|
||||||
int maxPage = panel.getMaxPage(filteredMap);
|
int maxPage = panel.getMaxPage(filteredMap);
|
||||||
|
|
||||||
@ -74,22 +74,15 @@ public class EntityTypeEditorPanel extends SubVariablePanelHandler<BossEntity, E
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<EntityType, Material> getFilteredMap(List<EntityType> entityTypes) {
|
private Map<EntityType, Short> getFilteredMap(List<EntityType> entityTypes) {
|
||||||
Map<EntityType, Material> filteredMap = new HashMap<>();
|
Map<EntityType, Short> filteredMap = new HashMap<>();
|
||||||
|
|
||||||
entityTypes.forEach(entityType -> {
|
entityTypes.forEach(entityType -> filteredMap.put(entityType, entityType.getTypeId()));
|
||||||
String materialName = entityType + "_SPAWN_EGG";
|
|
||||||
Material material = Material.matchMaterial(materialName);
|
|
||||||
|
|
||||||
if(material == null) return;
|
|
||||||
|
|
||||||
filteredMap.put(entityType, material);
|
|
||||||
});
|
|
||||||
|
|
||||||
return filteredMap;
|
return filteredMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadPage(Panel panel, int requestedPage, Map<EntityType, Material> filteredMap, List<EntityType> filteredList, BossEntity bossEntity, EntityStatsElement entityStatsElement) {
|
private void loadPage(Panel panel, int requestedPage, Map<EntityType, Short> filteredMap, List<EntityType> filteredList, BossEntity bossEntity, EntityStatsElement entityStatsElement) {
|
||||||
String entityTypeValue = entityStatsElement.getMainStats().getEntityType();
|
String entityTypeValue = entityStatsElement.getMainStats().getEntityType();
|
||||||
|
|
||||||
ServerUtils.get().runTaskAsync(() -> panel.loadPage(requestedPage, ((slot, realisticSlot) -> {
|
ServerUtils.get().runTaskAsync(() -> panel.loadPage(requestedPage, ((slot, realisticSlot) -> {
|
||||||
@ -97,9 +90,7 @@ public class EntityTypeEditorPanel extends SubVariablePanelHandler<BossEntity, E
|
|||||||
panel.setItem(realisticSlot, new ItemStack(Material.AIR), e -> {});
|
panel.setItem(realisticSlot, new ItemStack(Material.AIR), e -> {});
|
||||||
} else {
|
} else {
|
||||||
EntityType entityType = filteredList.get(slot);
|
EntityType entityType = filteredList.get(slot);
|
||||||
Material material = filteredMap.get(entityType);
|
ItemStack itemStack = new ItemStack(Material.MONSTER_EGG, filteredMap.get(entityType));
|
||||||
ItemStack itemStack = new ItemStack(material);
|
|
||||||
|
|
||||||
Map<String, String> replaceMap = new HashMap<>();
|
Map<String, String> replaceMap = new HashMap<>();
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
|
|
||||||
|
@ -96,6 +96,8 @@ public abstract class DropTableRewardsListEditorPanel<SubVariable> extends SubVa
|
|||||||
|
|
||||||
ItemStack itemStack = this.itemsFileManager.getItemStackConverter().from(this.itemsFileManager.getItemStackHolder(name));
|
ItemStack itemStack = this.itemsFileManager.getItemStackConverter().from(this.itemsFileManager.getItemStackHolder(name));
|
||||||
|
|
||||||
|
if(itemStack == null || itemStack.getType() == Material.AIR) return;
|
||||||
|
|
||||||
ItemStackUtils.applyDisplayName(itemStack, this.plugin.getConfig().getString("Display.DropTable.RewardList.name"), replaceMap);
|
ItemStackUtils.applyDisplayName(itemStack, this.plugin.getConfig().getString("Display.DropTable.RewardList.name"), replaceMap);
|
||||||
ItemStackUtils.applyDisplayLore(itemStack, this.plugin.getConfig().getStringList("Display.DropTable.RewardList.lore"), replaceMap);
|
ItemStackUtils.applyDisplayLore(itemStack, this.plugin.getConfig().getStringList("Display.DropTable.RewardList.lore"), replaceMap);
|
||||||
|
|
||||||
|
@ -23,15 +23,15 @@ public enum EnchantFinder {
|
|||||||
aqua_affinity("Aqua Affinity", Enchantment.WATER_WORKER, "water_worker", "water worker", "aquaaffinity", "aqua_affinity", "aqua affinity"),
|
aqua_affinity("Aqua Affinity", Enchantment.WATER_WORKER, "water_worker", "water worker", "aquaaffinity", "aqua_affinity", "aqua affinity"),
|
||||||
thorns("Thorns", Enchantment.THORNS, "thorns"),
|
thorns("Thorns", Enchantment.THORNS, "thorns"),
|
||||||
depth_strider("Depth Strider", Enchantment.DEPTH_STRIDER, "depth_strider", "depth strider"),
|
depth_strider("Depth Strider", Enchantment.DEPTH_STRIDER, "depth_strider", "depth strider"),
|
||||||
frost_walker("Frost Walker", Enchantment.FROST_WALKER, "frost_walker", "frost walker"),
|
frost_walker("Frost Walker", Enchantment.getByName("FROST_WALKER"), "frost_walker", "frost walker"),
|
||||||
binding_curse("Curse of Binding", Enchantment.BINDING_CURSE, "binding_curse", "binding curse", "curse"),
|
binding_curse("Curse of Binding", Enchantment.getByName("BINDING_CURSE"), "binding_curse", "binding curse", "curse"),
|
||||||
sharpness("Sharpness", Enchantment.DAMAGE_ALL, "sharpness", "damage", "damage all", "damage_all"),
|
sharpness("Sharpness", Enchantment.DAMAGE_ALL, "sharpness", "damage", "damage all", "damage_all"),
|
||||||
smite("Smite", Enchantment.DAMAGE_UNDEAD, "smite", "damage_undead", "damage undead"),
|
smite("Smite", Enchantment.DAMAGE_UNDEAD, "smite", "damage_undead", "damage undead"),
|
||||||
bane_of_arthropods("Bane of Arthropods", Enchantment.DAMAGE_ARTHROPODS, "damage_arthropods", "arthropods", "bane_of_arthropods", "bane of arthropods"),
|
bane_of_arthropods("Bane of Arthropods", Enchantment.DAMAGE_ARTHROPODS, "damage_arthropods", "arthropods", "bane_of_arthropods", "bane of arthropods"),
|
||||||
knockback("Knockback", Enchantment.KNOCKBACK, "knockback"),
|
knockback("Knockback", Enchantment.KNOCKBACK, "knockback"),
|
||||||
fire_aspect("Fire Aspect", Enchantment.FIRE_ASPECT, "fire aspect", "fire_aspect", "fireaspect"),
|
fire_aspect("Fire Aspect", Enchantment.FIRE_ASPECT, "fire aspect", "fire_aspect", "fireaspect"),
|
||||||
looting("Looting", Enchantment.LOOT_BONUS_MOBS, "looting", "loot bonus mobs", "loot_bonus_mobs"),
|
looting("Looting", Enchantment.LOOT_BONUS_MOBS, "looting", "loot bonus mobs", "loot_bonus_mobs"),
|
||||||
sweeping_edge("Sweeping Edge", Enchantment.SWEEPING_EDGE, "sweeping edge", "sweeping_edge"),
|
sweeping_edge("Sweeping Edge", Enchantment.getByName("SWEEPING_EDGE"), "sweeping edge", "sweeping_edge"),
|
||||||
efficiency("Efficiency", Enchantment.DIG_SPEED, "efficiency", "dig speed", "dig_speed", "digspeed"),
|
efficiency("Efficiency", Enchantment.DIG_SPEED, "efficiency", "dig speed", "dig_speed", "digspeed"),
|
||||||
silk_touch("Silk Touch", Enchantment.SILK_TOUCH, "silk touch", "silk_touch", "silktouch", "silk"),
|
silk_touch("Silk Touch", Enchantment.SILK_TOUCH, "silk touch", "silk_touch", "silktouch", "silk"),
|
||||||
unbreaking("Unbreaking", Enchantment.DURABILITY, "durability", "unbreaking"),
|
unbreaking("Unbreaking", Enchantment.DURABILITY, "durability", "unbreaking"),
|
||||||
@ -42,8 +42,8 @@ public enum EnchantFinder {
|
|||||||
infinite("Infinite", Enchantment.ARROW_INFINITE, "infinite", "arrow_infinite", "arrow infinite"),
|
infinite("Infinite", Enchantment.ARROW_INFINITE, "infinite", "arrow_infinite", "arrow infinite"),
|
||||||
luck("Luck", Enchantment.LUCK, "luck"),
|
luck("Luck", Enchantment.LUCK, "luck"),
|
||||||
lure("Lure", Enchantment.LURE, "lure"),
|
lure("Lure", Enchantment.LURE, "lure"),
|
||||||
mending("Mending", Enchantment.MENDING, "mending"),
|
mending("Mending", Enchantment.getByName("MENDING"), "mending"),
|
||||||
curse_of_vanishing("Curse of Vanishing", Enchantment.VANISHING_CURSE, "vanishing", "vanishing curse", "vanishing_curse", "curseofvanishing", "vanishingcurse", "curse of vanishing", "curse_of_vanishing");
|
curse_of_vanishing("Curse of Vanishing", Enchantment.getByName("VANISHING_CURSE"), "vanishing", "vanishing curse", "vanishing_curse", "curseofvanishing", "vanishingcurse", "curse of vanishing", "curse_of_vanishing");
|
||||||
|
|
||||||
@Getter private List<String> names = new ArrayList<>();
|
@Getter private List<String> names = new ArrayList<>();
|
||||||
@Getter private Enchantment enchantment;
|
@Getter private Enchantment enchantment;
|
||||||
|
@ -106,9 +106,11 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
|
|||||||
public ItemStack from(ItemStackHolder itemStackHolder, Map<String, String> replaceMap) {
|
public ItemStack from(ItemStackHolder itemStackHolder, Map<String, String> replaceMap) {
|
||||||
ItemStack itemStack = new ItemStack(Material.AIR);
|
ItemStack itemStack = new ItemStack(Material.AIR);
|
||||||
|
|
||||||
|
if(itemStackHolder == null) return itemStack;
|
||||||
if(itemStackHolder.getType() == null) return itemStack;
|
if(itemStackHolder.getType() == null) return itemStack;
|
||||||
|
|
||||||
Material material = this.materialConverter.from(itemStackHolder.getType());
|
String type = itemStackHolder.getType();
|
||||||
|
Material material = this.materialConverter.from(type);
|
||||||
|
|
||||||
if(material == null) return itemStack;
|
if(material == null) return itemStack;
|
||||||
|
|
||||||
@ -120,6 +122,10 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
|
|||||||
List<String> lore = itemStackHolder.getLore(), enchants = itemStackHolder.getEnchants();
|
List<String> lore = itemStackHolder.getLore(), enchants = itemStackHolder.getEnchants();
|
||||||
Boolean isGlowing = itemStackHolder.getIsGlowing();
|
Boolean isGlowing = itemStackHolder.getIsGlowing();
|
||||||
|
|
||||||
|
if(type.contains(":")) {
|
||||||
|
durability = Short.valueOf(type.split(":")[1]);
|
||||||
|
}
|
||||||
|
|
||||||
if(durability != null) itemStack.setDurability(durability);
|
if(durability != null) itemStack.setDurability(durability);
|
||||||
if(enchants != null) itemStack.addUnsafeEnchantments(this.enchantConverter.from(enchants));
|
if(enchants != null) itemStack.addUnsafeEnchantments(this.enchantConverter.from(enchants));
|
||||||
|
|
||||||
|
@ -62,15 +62,6 @@ public class ItemStackUtils {
|
|||||||
|
|
||||||
if(compoundData == null || compoundData.isEmpty()) return cloneStack;
|
if(compoundData == null || compoundData.isEmpty()) return cloneStack;
|
||||||
|
|
||||||
// TODO
|
|
||||||
// ItemStack craftStack = NbtFactory.getCraftItemStack(cloneStack);
|
|
||||||
// NbtFactory.NbtCompound compound = NbtFactory.fromItemTag(craftStack);
|
|
||||||
//
|
|
||||||
// for(String s : compoundData.keySet()) {
|
|
||||||
// compound.put(s, compoundData.get(s));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return craftStack;
|
|
||||||
return cloneStack;
|
return cloneStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,17 +78,26 @@ public class ItemStackUtils {
|
|||||||
String owner = configurationSection.getString("owner");
|
String owner = configurationSection.getString("owner");
|
||||||
Map<Enchantment, Integer> map = new HashMap<>();
|
Map<Enchantment, Integer> map = new HashMap<>();
|
||||||
List<String> newLore = new ArrayList<>();
|
List<String> newLore = new ArrayList<>();
|
||||||
Material mat = getType(type);
|
|
||||||
short meta = 0;
|
|
||||||
boolean addGlow = false;
|
boolean addGlow = false;
|
||||||
|
short meta = 0;
|
||||||
|
Material mat;
|
||||||
|
|
||||||
if(type instanceof String) {
|
if(NumberUtils.get().isInt(type)) {
|
||||||
String sType = (String) type;
|
mat = Material.getMaterial(NumberUtils.get().getInteger(type));
|
||||||
|
} else {
|
||||||
|
if(type.contains(":")) {
|
||||||
|
String[] split = type.split(":");
|
||||||
|
String typeSplit = split[0];
|
||||||
|
|
||||||
if(sType.contains(":")) {
|
if(NumberUtils.get().isInt(typeSplit)) {
|
||||||
String[] split = sType.split(":");
|
mat = Material.getMaterial(NumberUtils.get().getInteger(typeSplit));
|
||||||
|
} else {
|
||||||
|
mat = Material.getMaterial(typeSplit);
|
||||||
|
}
|
||||||
|
|
||||||
meta = Short.valueOf(split[1]);
|
meta = Short.valueOf(split[1]);
|
||||||
|
} else {
|
||||||
|
mat = Material.getMaterial(type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,10 @@ public class MaterialConverter implements IConverter<String, Material> {
|
|||||||
input = split[0];
|
input = split[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(NumberUtils.get().isInt(input)) {
|
||||||
|
return Material.getMaterial(NumberUtils.get().getInteger(input));
|
||||||
|
}
|
||||||
|
|
||||||
return Material.matchMaterial(input);
|
return Material.matchMaterial(input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user