Compiles again on Java 8

This commit is contained in:
Jules 2024-07-26 12:12:33 -07:00
parent dcd1b55099
commit 25509be21b
7 changed files with 80 additions and 33 deletions

View File

@ -26,8 +26,9 @@ public class SkillTreesCommand extends RegisteredCommand {
public boolean execute(@NotNull CommandSender sender, String s, String[] args) {
if (!sender.hasPermission("mmocore.skilltrees"))
return false;
if (!(sender instanceof Player player))
if (!(sender instanceof Player))
return false;
final Player player = (Player) sender;
PlayerData data = PlayerData.get(player);
MMOCommandEvent event = new MMOCommandEvent(data, "skilltrees");
Bukkit.getServer().getPluginManager().callEvent(event);

View File

@ -192,8 +192,8 @@ public class ThreeDimAdaptor extends Adaptor {
private void setItem(ItemStack item, int n, double percentage) {
Location location = getLocation(n, percentage);
if(item.getType().toString().contains("SKULL")||item.getType().toString().contains("HEAD")) {
location.add(new Vector(0,4.9,0));
if (item.getType().toString().contains("SKULL") || item.getType().toString().contains("HEAD")) {
location.add(new Vector(0, 4.9, 0));
}
//We create the armorStand corresponding to display the item
ArmorStand armorStand = (ArmorStand) generated.getPlayer().getWorld().spawnEntity(location, EntityType.ARMOR_STAND);
@ -372,19 +372,11 @@ public class ThreeDimAdaptor extends Adaptor {
PacketContainer packet = event.getPacket();
Entity entity = ProtocolLibrary.getProtocolManager()
.getEntityFromID(event.getPlayer().getWorld(), packet.getIntegers().read(0));
if (entity instanceof ArmorStand armorStand) {
if (true) {
if (armorStands.values().contains(armorStand)) {
event.setCancelled(true);
}
}
}
if (entity instanceof ArmorStand && armorStands.values().contains(entity))
event.setCancelled(true);
}
}
private class InteractListener extends TemporaryListener {
public InteractListener() {
@ -437,10 +429,9 @@ public class ThreeDimAdaptor extends Adaptor {
@EventHandler
public void onInteract(PlayerInteractAtEntityEvent event) {
if (event.getPlayer().equals(generated.getPlayer()))
if (event.getRightClicked() instanceof ArmorStand armorStand)
if (event.getRightClicked() instanceof ArmorStand)
event.setCancelled(true);
/*
if (armorStands.values().contains(armorStand)) {
PersistentDataContainer container = armorStand.getPersistentDataContainer();
@ -493,11 +484,13 @@ public class ThreeDimAdaptor extends Adaptor {
@EventHandler
public void onDamage(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Player player)
if (event.getDamager() instanceof Player) {
final Player player = (Player) event.getDamager();
if (player.equals(generated.getPlayer()))
if (event.getEntity() instanceof ArmorStand armorStand)
if (armorStands.values().contains(armorStand))
if (event.getEntity() instanceof ArmorStand)
if (armorStands.values().contains(event.getEntity()))
event.setCancelled(true);
}
}

View File

@ -168,6 +168,8 @@ public class KeyCombos extends SkillCastingHandler {
}
}
private static final List<TriggerType> IGNORED_WHEN_CASTING = Arrays.asList(TriggerType.RIGHT_CLICK, TriggerType.LEFT_CLICK, TriggerType.SHIFT_RIGHT_CLICK, TriggerType.SHIFT_LEFT_CLICK, TriggerType.SNEAK);
/**
* Loads the player current combos & the combos applicable to the player
* (combos defined in its class or the default combos of the config.yml)
@ -194,8 +196,6 @@ public class KeyCombos extends SkillCastingHandler {
else getCaster().displayActionBar(actionBarOptions.format(this));
}
private static final List<TriggerType> IGNORED_WHEN_CASTING = Arrays.asList(TriggerType.RIGHT_CLICK, TriggerType.LEFT_CLICK, TriggerType.SHIFT_RIGHT_CLICK, TriggerType.SHIFT_LEFT_CLICK, TriggerType.SNEAK);
/**
* This makes sure NO skills are cast when in casting mode so that
* item abilities from MMOItems don't interfere with that.
@ -205,8 +205,8 @@ public class KeyCombos extends SkillCastingHandler {
*/
@EventHandler
public void ignoreOtherSkills(PlayerCastSkillEvent event) {
if (!event.getPlayer().equals(getCaster().getPlayer())) return;
if (IGNORED_WHEN_CASTING.contains(event.getCast().getTrigger())) event.setCancelled(true);
if (event.getPlayer().equals(getCaster().getPlayer()) && IGNORED_WHEN_CASTING.contains(event.getCast().getTrigger()))
event.setCancelled(true);
}
}

View File

@ -133,7 +133,7 @@ public class SkillTreeNode implements ExperienceObject {
public int getParentNeededLevel(SkillTreeNode parent) {
for (Map.Entry<ParentInformation, Integer> entry : parents.entrySet())
if (entry.getKey().node().equals(parent))
if (entry.getKey().getNode().equals(parent))
return entry.getValue();
throw new RuntimeException("Could not find parent " + parent.getId() + " for node " + id);
}
@ -144,7 +144,7 @@ public class SkillTreeNode implements ExperienceObject {
public boolean hasParent(SkillTreeNode parent) {
for (Map.Entry<ParentInformation, Integer> entry : parents.entrySet())
if (entry.getKey().node() == parent)
if (entry.getKey().getNode() == parent)
return true;
return false;
}
@ -162,11 +162,11 @@ public class SkillTreeNode implements ExperienceObject {
}
public Set<SkillTreeNode> getParents() {
return parents.keySet().stream().map(ParentInformation::node).collect(Collectors.toSet());
return parents.keySet().stream().map(ParentInformation::getNode).collect(Collectors.toSet());
}
public Set<SkillTreeNode> getParents(ParentType parentType) {
return parents.entrySet().stream().filter(entry -> entry.getKey().type() == parentType).map((entry) -> entry.getKey().node()).collect(Collectors.toSet());
return parents.entrySet().stream().filter(entry -> entry.getKey().type() == parentType).map((entry) -> entry.getKey().getNode()).collect(Collectors.toSet());
}
public List<SkillTreeNode> getChildren() {

View File

@ -5,7 +5,18 @@ import net.Indyuce.mmocore.gui.skilltree.display.PathStatus;
import net.Indyuce.mmocore.gui.skilltree.display.PathType;
import net.Indyuce.mmocore.skilltree.tree.SkillTree;
public record SkillTreePath(SkillTree tree, IntegerCoordinates coordinates, SkillTreeNode from, SkillTreeNode to) {
public class SkillTreePath {
private final SkillTree tree;
private final IntegerCoordinates coordinates;
private final SkillTreeNode from;
private final SkillTreeNode to;
public SkillTreePath(SkillTree tree, IntegerCoordinates coordinates, SkillTreeNode from, SkillTreeNode skillTreeNode) {
this.tree = tree;
this.coordinates = coordinates;
this.from = from;
to = skillTreeNode;
}
public PathStatus getStatus(PlayerData playerData) {
SkillTreeStatus fromStatus = playerData.getNodeStatus(from);
@ -44,6 +55,4 @@ public record SkillTreePath(SkillTree tree, IntegerCoordinates coordinates, Skil
}
return PathType.DEFAULT;
}
}

View File

@ -2,6 +2,49 @@ package net.Indyuce.mmocore.skilltree.tree;
import net.Indyuce.mmocore.skilltree.ParentType;
import net.Indyuce.mmocore.skilltree.SkillTreeNode;
import org.jetbrains.annotations.NotNull;
public record ParentInformation(SkillTreeNode node, ParentType type) {
import java.util.Objects;
public class ParentInformation {
private final SkillTreeNode node;
private final ParentType type;
public ParentInformation(SkillTreeNode node, ParentType type) {
this.node = node;
this.type = type;
}
@NotNull
public SkillTreeNode getNode() {
return node;
}
@NotNull
public ParentType getType() {
return type;
}
@Deprecated
public ParentType type() {
return type;
}
@Deprecated
public SkillTreeNode node() {
return node;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ParentInformation that = (ParentInformation) o;
return Objects.equals(node, that.node) && type == that.type;
}
@Override
public int hashCode() {
return Objects.hash(node, type);
}
}

View File

@ -13,7 +13,7 @@
</modules>
<name>MMOCore</name>
<description>Offer your players a brand new RPG experience!!</description>
<description>Offer your players a brand-new RPG experience!</description>
<properties>
<downloadSources>false</downloadSources>
@ -25,12 +25,13 @@
<build>
<plugins>
<plugin>
<!-- Compiles on Java 8 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>16</source>
<target>16</target>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgument>-proc:none</compilerArgument>
</configuration>