Skip to content

Commit

Permalink
Update to 1.12.1
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcinWieczorek committed Aug 22, 2017
1 parent 341f59e commit a0bd6eb
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 3 deletions.
5 changes: 3 additions & 2 deletions pom.xml
Expand Up @@ -92,8 +92,8 @@
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.11.2-R0.1-SNAPSHOT</version>
<artifactId>spigot</artifactId>
<version>1.12.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -184,6 +184,7 @@
<groupId>us.dynmap</groupId>
<artifactId>dynmap-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
</dependencies>

Expand Down
Expand Up @@ -36,6 +36,7 @@
import co.marcin.novaguilds.manager.GroupManager;
import co.marcin.novaguilds.manager.PlayerManager;
import co.marcin.novaguilds.manager.RegionManager;
import co.marcin.novaguilds.util.CompatibilityUtils;
import co.marcin.novaguilds.util.ItemStackUtils;
import co.marcin.novaguilds.util.RegionUtils;
import org.bukkit.Location;
Expand Down Expand Up @@ -68,7 +69,7 @@ public void onClick(PlayerInteractEvent event) {

Location pointedLocation;
try {
pointedLocation = player.getTargetBlock((HashSet<Byte>) null, 200).getLocation();
pointedLocation = CompatibilityUtils.getTargetBlock(player, null, 200).getLocation();
}
catch(IllegalStateException ignored) {
//This happens.
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/co/marcin/novaguilds/util/CompatibilityUtils.java
Expand Up @@ -22,8 +22,10 @@
import co.marcin.novaguilds.manager.ConfigManager;
import co.marcin.novaguilds.util.reflect.Reflections;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
Expand All @@ -38,6 +40,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

public class CompatibilityUtils {
Expand All @@ -48,6 +51,7 @@ public class CompatibilityUtils {
protected static Class<?> craftTeamClass;
protected static Class<?> mojangNameLookupClass;
protected static MethodInvoker<String> lookupNameMethod;
protected static MethodInvoker<Block> getTargetBlockMethod;

static {
try {
Expand All @@ -58,6 +62,7 @@ public class CompatibilityUtils {
addPlayerToTeamMethod = Reflections.getMethod(boardClass, "addPlayerToTeam");
mojangNameLookupClass = Reflections.getBukkitClass("util.MojangNameLookup");
lookupNameMethod = Reflections.getMethod(mojangNameLookupClass, String.class, "lookupName");
getTargetBlockMethod = Reflections.getMethod(Player.class, Block.class, "getTargetBlock");
}
catch(NoSuchMethodException | ClassNotFoundException | NoSuchFieldException e) {
LoggerUtils.exception(e);
Expand Down Expand Up @@ -170,4 +175,23 @@ public static OfflinePlayer getOfflinePlayer(UUID id) {
return Bukkit.getOfflinePlayer(name);
}
}

/**
* Wrapper for Player#getTargetBlock
* The "HashSet" method has been removed in 1.12.1
* The "Set" method has been added in 1.8-R1 (0fcdca4beac)
*
* @param player player
* @param transparent transparent of transparent blocks
* @param maxDistance maxDistance
* @return target block
*/
public static Block getTargetBlock(Player player, Set<Material> transparent, int maxDistance) {
if(ConfigManager.getServerVersion().isNewerThan(ConfigManager.ServerVersion.MINECRAFT_1_8_R1)) {
return player.getTargetBlock(transparent, maxDistance);
}
else {
return getTargetBlockMethod.invoke(player, transparent, maxDistance);
}
}
}

0 comments on commit a0bd6eb

Please sign in to comment.