Added basic 1.14 """"""support"""""".

Addons are NOT compatible with 1.14.
Both 1.14 and 1.14.1 are now considered "NOT_SUPPORTED"
This commit is contained in:
tastybento 2019-05-14 11:03:57 +02:00 committed by Florian CUNY
parent bcc5af1758
commit 1207a05d3f
8 changed files with 33 additions and 22 deletions

View File

@ -8,15 +8,17 @@ import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.eclipse.jdt.annotation.NonNull;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.listeners.PanelListenerManager;
import world.bentobox.bentobox.util.heads.HeadGetter;
import world.bentobox.bentobox.util.heads.HeadRequester;
public class Panel implements HeadRequester {
public class Panel implements HeadRequester, InventoryHolder {
private Inventory inventory;
private Map<Integer, PanelItem> items;
@ -62,6 +64,8 @@ public class Panel implements HeadRequester {
if (user != null) this.open(user);
}
@NonNull
@Override
public Inventory getInventory() {
return inventory;
}

View File

@ -13,6 +13,7 @@ import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.panels.Panel;
import world.bentobox.bentobox.api.panels.PanelItem;
@ -25,11 +26,11 @@ public class PanelListenerManager implements Listener {
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClick(InventoryClickEvent event) {
User user = User.getInstance(event.getWhoClicked()); // The player that clicked the item
Inventory inventory = event.getInventory(); // The inventory that was clicked on
InventoryView view = event.getView();
// Open the inventory panel that this player has open (they can only ever have one)
if (openPanels.containsKey(user.getUniqueId())) {
// Check the name of the panel
if (inventory.getName().equals(openPanels.get(user.getUniqueId()).getInventory().getName())) {
if (view.getTitle().equals(openPanels.get(user.getUniqueId()).getName())) {
// Close inventory if clicked outside and if setting is true
if (BentoBox.getInstance().getSettings().isClosePanelOnClickOutside() && event.getSlotType().equals(SlotType.OUTSIDE)) {
event.getWhoClicked().closeInventory();

View File

@ -124,7 +124,7 @@ public class PortalTeleportationListener implements Listener {
if (fromWorld.getEnvironment() != Environment.NETHER) {
// To Standard Nether
e.setTo(plugin.getIWM().getNetherWorld(overWorld).getSpawnLocation());
e.useTravelAgent(true);
// e.useTravelAgent(true); - No longer available in 1.14
}
// From standard nether
else {

View File

@ -23,7 +23,7 @@ public class DyeListener extends FlagListener {
*/
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEvent e) {
if (!ServerCompatibility.getInstance().isVersion(ServerCompatibility.ServerVersion.V1_14)) {
if (!ServerCompatibility.getInstance().isVersion(ServerCompatibility.ServerVersion.V1_14, ServerCompatibility.ServerVersion.V1_14_1)) {
// We're disabling this check for non-1.14 servers.
return;
}

View File

@ -226,13 +226,13 @@ public class IslandsManager {
}
if (ground.getType().equals(Material.CACTUS) || ground.getType().toString().contains("BOAT") || ground.getType().toString().contains("FENCE")
|| ground.getType().equals(Material.SIGN) || ground.getType().equals(Material.WALL_SIGN)) {
|| ground.getType().toString().contains("SIGN")) {
return false;
}
// Check that the space is not solid
// The isSolid function is not fully accurate (yet) so we have to check a few other items
// isSolid thinks that PLATEs and SIGNS are solid, but they are not
return (!space1.getType().isSolid() || space1.getType().equals(Material.SIGN) || space1.getType().equals(Material.WALL_SIGN)) && (!space2.getType().isSolid() || space2.getType().equals(Material.SIGN) || space2.getType().equals(Material.WALL_SIGN));
return (!space1.getType().isSolid() || space1.getType().toString().contains("SIGN")) && (!space2.getType().isSolid() || space2.getType().equals(Material.SIGN) || space2.getType().equals(Material.WALL_SIGN));
}
/**

View File

@ -53,14 +53,14 @@ public class SettingsPanel {
// Add forward and backward icons
if (page > 0) {
// Previous page icon
panelBuilder.item(new PanelItemBuilder().icon(Material.SIGN).name(user.getTranslation(PROTECTION_PANEL + "previous")).clickHandler((panel, user1, clickType, slot1) -> {
panelBuilder.item(new PanelItemBuilder().icon(Material.ARROW).name(user.getTranslation(PROTECTION_PANEL + "previous")).clickHandler((panel, user1, clickType, slot1) -> {
openPanel(BentoBox.getInstance(), user, flagType, world, page - 1);
return true;
}).build());
}
if ((page + 1) * 44 < flags.size()) {
// Next page icon
panelBuilder.item(new PanelItemBuilder().icon(Material.SIGN).name(user.getTranslation(PROTECTION_PANEL + "next")).clickHandler((panel, user1, clickType, slot1) -> {
panelBuilder.item(new PanelItemBuilder().icon(Material.ARROW).name(user.getTranslation(PROTECTION_PANEL + "next")).clickHandler((panel, user1, clickType, slot1) -> {
openPanel(BentoBox.getInstance(), user, flagType, world, page + 1);
return true;
}).build());

View File

@ -276,7 +276,8 @@ public class SafeSpotTeleport {
Material space1 = chunk.getBlockType(x, Math.min(y + 1, worldHeight), z);
Material space2 = chunk.getBlockType(x, Math.min(y + 2, worldHeight), z);
if ((space1.equals(Material.AIR) && space2.equals(Material.AIR)) || (space1.equals(Material.NETHER_PORTAL) && space2.equals(Material.NETHER_PORTAL))
&& (!type.toString().contains("FENCE") && !type.toString().contains("DOOR") && !type.toString().contains("GATE") && !type.toString().contains("PLATE"))) {
&& (!type.toString().contains("FENCE") && !type.toString().contains("DOOR") && !type.toString().contains("GATE") && !type.toString().contains("PLATE")
&& !type.toString().contains("SIGN"))) {
switch (type) {
// Unsafe
case ANVIL:
@ -291,7 +292,6 @@ public class SafeSpotTeleport {
case TALL_GRASS:
case PISTON_HEAD:
case MOVING_PISTON:
case SIGN:
case STONE_BUTTON:
case TORCH:
case TRIPWIRE:

View File

@ -4,6 +4,8 @@ import org.bukkit.Bukkit;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import java.util.Arrays;
/**
* Checks and ensures the current server software is compatible with BentoBox.
* @author Poslovitch
@ -95,7 +97,11 @@ public class ServerCompatibility {
/**
* @since 1.5.0
*/
V1_14(Compatibility.INCOMPATIBLE);
V1_14(Compatibility.NOT_SUPPORTED),
/**
* @since 1.5.0
*/
V1_14_1(Compatibility.NOT_SUPPORTED);
private Compatibility compatibility;
@ -188,22 +194,22 @@ public class ServerCompatibility {
}
/**
* Returns whether the server runs on the specified version.
* @param version the {@link ServerVersion} to check.
* @return {@code true} if the server runs on this version, {@code false} otherwise.
* Returns whether the server runs on the specified versions.
* @param versions the {@link ServerVersion}s to check.
* @return {@code true} if the server runs on one of the specified versions, {@code false} otherwise.
* @since 1.5.0
*/
public boolean isVersion(@NonNull ServerVersion version) {
return version.equals(getServerVersion());
public boolean isVersion(@NonNull ServerVersion... versions) {
return Arrays.asList(versions).contains(getServerVersion());
}
/**
* Returns whether the server runs on the specified software.
* @param software the {@link ServerSoftware} to check.
* @return {@code true} if the server runs on this software, {@code false} otherwise.
* Returns whether the server runs on the specified softwares.
* @param softwares the {@link ServerSoftware}s to check.
* @return {@code true} if the server runs on on of these softwares, {@code false} otherwise.
* @since 1.5.0
*/
public boolean isSoftware(@NonNull ServerSoftware software) {
return software.equals(getServerSoftware());
public boolean isSoftware(@NonNull ServerSoftware... softwares) {
return Arrays.asList(softwares).contains(getServerSoftware());
}
}