mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-11-24 03:35:11 +01:00
Cleaned up imports and unneeded exceptions
This commit is contained in:
parent
8e97186caf
commit
b20fbd55a4
@ -1,11 +1,11 @@
|
|||||||
package us.tastybento.bskyblock.api.commands;
|
package us.tastybento.bskyblock.api.commands;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for BSkyBlock Commands
|
* Interface for BSkyBlock Commands
|
||||||
* @author tastybento
|
* @author tastybento
|
||||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.apache.commons.lang.math.NumberUtils;
|
import org.apache.commons.lang.math.NumberUtils;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,7 +2,6 @@ package us.tastybento.bskyblock.api.configuration;
|
|||||||
|
|
||||||
import java.beans.IntrospectionException;
|
import java.beans.IntrospectionException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@ -43,8 +42,8 @@ public class BSBConfig<T> {
|
|||||||
List<T> result = new ArrayList<>();
|
List<T> result = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
result = handler.loadObjects();
|
result = handler.loadObjects();
|
||||||
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
|
||||||
| SecurityException | ClassNotFoundException | IntrospectionException | SQLException e) {
|
| InvocationTargetException | ClassNotFoundException | IntrospectionException e) {
|
||||||
logger.severe(() -> "Could not load config! Error: " + e.getMessage());
|
logger.severe(() -> "Could not load config! Error: " + e.getMessage());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -56,12 +55,14 @@ public class BSBConfig<T> {
|
|||||||
* @return the object or null if it cannot be loaded
|
* @return the object or null if it cannot be loaded
|
||||||
*/
|
*/
|
||||||
public T loadConfigObject(String uniqueId) {
|
public T loadConfigObject(String uniqueId) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return handler.loadObject(uniqueId);
|
return handler.loadObject(uniqueId);
|
||||||
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
|
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
|
||||||
| SecurityException | ClassNotFoundException | IntrospectionException | SQLException e) {
|
| ClassNotFoundException | IntrospectionException e) {
|
||||||
logger.severe(() -> "Could not load config object! " + e.getMessage());
|
logger.severe(() -> "Could not load config object! " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +74,7 @@ public class BSBConfig<T> {
|
|||||||
try {
|
try {
|
||||||
handler.saveObject(instance);
|
handler.saveObject(instance);
|
||||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException
|
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException
|
||||||
| InstantiationException | NoSuchMethodException | IntrospectionException | SQLException e) {
|
| IntrospectionException e) {
|
||||||
logger.severe(() -> "Could not save config! Error: " + e.getMessage());
|
logger.severe(() -> "Could not save config! Error: " + e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,9 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class Flag implements Comparable<Flag> {
|
public class Flag implements Comparable<Flag> {
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ import org.bukkit.inventory.ItemFlag;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class PanelItem {
|
public class PanelItem {
|
||||||
|
|
||||||
|
@ -2,10 +2,10 @@ package us.tastybento.bskyblock.api.panels.builders;
|
|||||||
|
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.panels.Panel;
|
import us.tastybento.bskyblock.api.panels.Panel;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelListener;
|
import us.tastybento.bskyblock.api.panels.PanelListener;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class PanelBuilder {
|
public class PanelBuilder {
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package us.tastybento.bskyblock.api.placeholders.hooks;
|
package us.tastybento.bskyblock.api.placeholders.hooks;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.placeholders.Placeholder;
|
import us.tastybento.bskyblock.api.placeholders.Placeholder;
|
||||||
import us.tastybento.bskyblock.api.placeholders.PlaceholderAPIInterface;
|
import us.tastybento.bskyblock.api.placeholders.PlaceholderAPIInterface;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.lists.Placeholders;
|
import us.tastybento.bskyblock.lists.Placeholders;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package us.tastybento.bskyblock.api.user;
|
package us.tastybento.bskyblock.api.user;
|
||||||
|
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
import com.google.common.cache.LoadingCache;
|
import com.google.common.cache.LoadingCache;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utilities class that helps to avoid spamming the User with potential repeated messages
|
* Utilities class that helps to avoid spamming the User with potential repeated messages
|
||||||
* @author Poslovitch
|
* @author Poslovitch
|
||||||
|
@ -5,12 +5,7 @@ import java.util.Locale;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
|
||||||
import com.google.common.cache.CacheLoader;
|
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
|
@ -8,8 +8,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.commands.IslandCommand;
|
import us.tastybento.bskyblock.commands.IslandCommand;
|
||||||
import us.tastybento.bskyblock.managers.island.NewIsland;
|
import us.tastybento.bskyblock.managers.island.NewIsland;
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.managers.island.NewIsland;
|
import us.tastybento.bskyblock.managers.island.NewIsland;
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class IslandTeamCommand extends AbstractIslandTeamCommand {
|
public class IslandTeamCommand extends AbstractIslandTeamCommand {
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ import org.bukkit.GameMode;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
|
|
||||||
public class IslandTeamInviteAcceptCommand extends AbstractIslandTeamCommand {
|
public class IslandTeamInviteAcceptCommand extends AbstractIslandTeamCommand {
|
||||||
|
@ -10,9 +10,9 @@ import java.util.UUID;
|
|||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.util.Util;
|
import us.tastybento.bskyblock.util.Util;
|
||||||
|
|
||||||
public class IslandTeamInviteCommand extends AbstractIslandTeamCommand {
|
public class IslandTeamInviteCommand extends AbstractIslandTeamCommand {
|
||||||
|
@ -4,9 +4,9 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class IslandTeamInviteRejectCommand extends AbstractIslandTeamCommand {
|
public class IslandTeamInviteRejectCommand extends AbstractIslandTeamCommand {
|
||||||
|
|
||||||
|
@ -7,9 +7,9 @@ import java.util.Optional;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.util.Util;
|
import us.tastybento.bskyblock.util.Util;
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ package us.tastybento.bskyblock.database;
|
|||||||
|
|
||||||
import java.beans.IntrospectionException;
|
import java.beans.IntrospectionException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
@ -51,7 +50,7 @@ public abstract class AbstractDatabaseHandler<T> {
|
|||||||
* Loads all the records in this table and returns a list of them
|
* Loads all the records in this table and returns a list of them
|
||||||
* @return list of <T>
|
* @return list of <T>
|
||||||
*/
|
*/
|
||||||
public abstract List<T> loadObjects() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, SQLException, SecurityException, ClassNotFoundException;
|
public abstract List<T> loadObjects() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IntrospectionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a <T> filled with values from the corresponding
|
* Creates a <T> filled with values from the corresponding
|
||||||
@ -59,20 +58,20 @@ public abstract class AbstractDatabaseHandler<T> {
|
|||||||
* @param uniqueId - unique ID
|
* @param uniqueId - unique ID
|
||||||
* @return <T>
|
* @return <T>
|
||||||
*/
|
*/
|
||||||
public abstract T loadObject(String uniqueId) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, SQLException, SecurityException, ClassNotFoundException;
|
public abstract T loadObject(String uniqueId) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IntrospectionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save T into the corresponding database
|
* Save T into the corresponding database
|
||||||
*
|
*
|
||||||
* @param instance that should be inserted into the database
|
* @param instance that should be inserted into the database
|
||||||
*/
|
*/
|
||||||
public abstract void saveObject(T instance) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, SQLException, SecurityException, InstantiationException, NoSuchMethodException;
|
public abstract void saveObject(T instance) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes the object with the unique id from the database
|
* Deletes the object with the unique id from the database
|
||||||
* @param instance
|
* @param instance
|
||||||
*/
|
*/
|
||||||
public abstract void deleteObject(T instance) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, SQLException, NoSuchMethodException, SecurityException;
|
public abstract void deleteObject(T instance) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a key exists or not
|
* Checks if a key exists or not
|
||||||
|
@ -19,7 +19,6 @@ import java.util.Map.Entry;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.configuration.MemorySection;
|
import org.bukkit.configuration.MemorySection;
|
||||||
@ -49,7 +48,6 @@ import us.tastybento.bskyblock.util.Util;
|
|||||||
public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
||||||
|
|
||||||
private static final String DATABASE_FOLDER_NAME = "database";
|
private static final String DATABASE_FOLDER_NAME = "database";
|
||||||
private static final boolean DEBUG = false;
|
|
||||||
protected boolean configFlag;
|
protected boolean configFlag;
|
||||||
|
|
||||||
public FlatFileDatabaseHandler(Plugin plugin, Class<T> type, DatabaseConnecter databaseConnecter) {
|
public FlatFileDatabaseHandler(Plugin plugin, Class<T> type, DatabaseConnecter databaseConnecter) {
|
||||||
@ -60,7 +58,7 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
* @see us.tastybento.bskyblock.database.managers.AbstractDatabaseHandler#loadObject(java.lang.String)
|
* @see us.tastybento.bskyblock.database.managers.AbstractDatabaseHandler#loadObject(java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public T loadObject(String key) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, ClassNotFoundException {
|
public T loadObject(String key) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IntrospectionException {
|
||||||
String path = DATABASE_FOLDER_NAME + File.separator + dataObject.getSimpleName();
|
String path = DATABASE_FOLDER_NAME + File.separator + dataObject.getSimpleName();
|
||||||
String fileName = key;
|
String fileName = key;
|
||||||
StoreAt storeAt = dataObject.getAnnotation(StoreAt.class);
|
StoreAt storeAt = dataObject.getAnnotation(StoreAt.class);
|
||||||
@ -82,7 +80,7 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
* @see us.tastybento.bskyblock.database.managers.AbstractDatabaseHandler#loadObjects()
|
* @see us.tastybento.bskyblock.database.managers.AbstractDatabaseHandler#loadObjects()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<T> loadObjects() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException, ClassNotFoundException {
|
public List<T> loadObjects() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IntrospectionException {
|
||||||
List<T> list = new ArrayList<>();
|
List<T> list = new ArrayList<>();
|
||||||
FilenameFilter ymlFilter = (dir, name) -> {
|
FilenameFilter ymlFilter = (dir, name) -> {
|
||||||
return name.toLowerCase().endsWith(".yml");
|
return name.toLowerCase().endsWith(".yml");
|
||||||
@ -126,9 +124,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(field.getName(), dataObject);
|
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(field.getName(), dataObject);
|
||||||
// Get the write method
|
// Get the write method
|
||||||
Method method = propertyDescriptor.getWriteMethod();
|
Method method = propertyDescriptor.getWriteMethod();
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: " + field.getName() + ": " + propertyDescriptor.getPropertyType().getTypeName());
|
|
||||||
}
|
|
||||||
String storageLocation = field.getName();
|
String storageLocation = field.getName();
|
||||||
// Check if there is an annotation on the field
|
// Check if there is an annotation on the field
|
||||||
ConfigEntry configEntry = field.getAnnotation(ConfigEntry.class);
|
ConfigEntry configEntry = field.getAnnotation(ConfigEntry.class);
|
||||||
@ -138,26 +133,15 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
storageLocation = configEntry.path();
|
storageLocation = configEntry.path();
|
||||||
}
|
}
|
||||||
if (!configEntry.specificTo().equals(GameType.BOTH) && !configEntry.specificTo().equals(Constants.GAMETYPE)) {
|
if (!configEntry.specificTo().equals(GameType.BOTH) && !configEntry.specificTo().equals(Constants.GAMETYPE)) {
|
||||||
if (DEBUG) {
|
|
||||||
Bukkit.getLogger().info(() -> field.getName() + " not applicable to this game type");
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// TODO: Add handling of other ConfigEntry elements
|
// TODO: Add handling of other ConfigEntry elements
|
||||||
}
|
}
|
||||||
Adapter adapterNotation = field.getAnnotation(Adapter.class);
|
Adapter adapterNotation = field.getAnnotation(Adapter.class);
|
||||||
if (adapterNotation != null && AdapterInterface.class.isAssignableFrom(adapterNotation.value())) {
|
if (adapterNotation != null && AdapterInterface.class.isAssignableFrom(adapterNotation.value())) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: there is an adapter");
|
|
||||||
}
|
|
||||||
// A conversion adapter has been defined
|
// A conversion adapter has been defined
|
||||||
Object value = config.get(storageLocation);
|
Object value = config.get(storageLocation);
|
||||||
method.invoke(instance, ((AdapterInterface<?,?>)adapterNotation.value().newInstance()).serialize(value));
|
method.invoke(instance, ((AdapterInterface<?,?>)adapterNotation.value().newInstance()).serialize(value));
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: value = " + value);
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: property type = " + propertyDescriptor.getPropertyType());
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: " + value.getClass());
|
|
||||||
}
|
|
||||||
if (value != null && !value.getClass().equals(MemorySection.class)) {
|
if (value != null && !value.getClass().equals(MemorySection.class)) {
|
||||||
method.invoke(instance, deserialize(value,propertyDescriptor.getPropertyType()));
|
method.invoke(instance, deserialize(value,propertyDescriptor.getPropertyType()));
|
||||||
}
|
}
|
||||||
@ -179,9 +163,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
// collectionTypes should be 2 long
|
// collectionTypes should be 2 long
|
||||||
Type keyType = collectionTypes.get(0);
|
Type keyType = collectionTypes.get(0);
|
||||||
Type valueType = collectionTypes.get(1);
|
Type valueType = collectionTypes.get(1);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: is Map or HashMap<" + keyType.getTypeName() + ", " + valueType.getTypeName() + ">");
|
|
||||||
}
|
|
||||||
// TODO: this may not work with all keys. Further serialization may be required.
|
// TODO: this may not work with all keys. Further serialization may be required.
|
||||||
Map<Object,Object> value = new HashMap<>();
|
Map<Object,Object> value = new HashMap<>();
|
||||||
if (config.getConfigurationSection(storageLocation) != null) {
|
if (config.getConfigurationSection(storageLocation) != null) {
|
||||||
@ -193,32 +174,17 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
}
|
}
|
||||||
// Map values can be null - it is allowed here
|
// Map values can be null - it is allowed here
|
||||||
Object mapValue = deserialize(config.get(storageLocation + "." + key), Class.forName(valueType.getTypeName()));
|
Object mapValue = deserialize(config.get(storageLocation + "." + key), Class.forName(valueType.getTypeName()));
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: mapKey = " + mapKey + " (" + mapKey.getClass().getCanonicalName() + ")");
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: mapValue = " + mapValue);
|
|
||||||
}
|
|
||||||
value.put(mapKey, mapValue);
|
value.put(mapKey, mapValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
method.invoke(instance, value);
|
method.invoke(instance, value);
|
||||||
} else if (Set.class.isAssignableFrom(propertyDescriptor.getPropertyType())) {
|
} else if (Set.class.isAssignableFrom(propertyDescriptor.getPropertyType())) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: is Set " + propertyDescriptor.getReadMethod().getGenericReturnType().getTypeName());
|
|
||||||
plugin.getLogger().info("DEBUG: adding a set");
|
|
||||||
}
|
|
||||||
// Loop through the collection resultset
|
// Loop through the collection resultset
|
||||||
// Note that we have no idea what type this is
|
// Note that we have no idea what type this is
|
||||||
List<Type> collectionTypes = Util.getCollectionParameterTypes(method);
|
List<Type> collectionTypes = Util.getCollectionParameterTypes(method);
|
||||||
// collectionTypes should be only 1 long
|
// collectionTypes should be only 1 long
|
||||||
Type setType = collectionTypes.get(0);
|
Type setType = collectionTypes.get(0);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: is HashSet<" + setType.getTypeName() + ">");
|
|
||||||
}
|
|
||||||
Set<Object> value = new HashSet<>();
|
Set<Object> value = new HashSet<>();
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: collection type argument = " + collectionTypes);
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: setType = " + setType.getTypeName());
|
|
||||||
}
|
|
||||||
for (Object listValue: config.getList(storageLocation)) {
|
for (Object listValue: config.getList(storageLocation)) {
|
||||||
value.add(deserialize(listValue,Class.forName(setType.getTypeName())));
|
value.add(deserialize(listValue,Class.forName(setType.getTypeName())));
|
||||||
}
|
}
|
||||||
@ -226,9 +192,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
// TODO: this may not work with all keys. Further serialization may be required.
|
// TODO: this may not work with all keys. Further serialization may be required.
|
||||||
method.invoke(instance, value);
|
method.invoke(instance, value);
|
||||||
} else if (List.class.isAssignableFrom(propertyDescriptor.getPropertyType())) {
|
} else if (List.class.isAssignableFrom(propertyDescriptor.getPropertyType())) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: adding a set");
|
|
||||||
}
|
|
||||||
// Loop through the collection resultset
|
// Loop through the collection resultset
|
||||||
// Note that we have no idea what type this is
|
// Note that we have no idea what type this is
|
||||||
List<Type> collectionTypes = Util.getCollectionParameterTypes(method);
|
List<Type> collectionTypes = Util.getCollectionParameterTypes(method);
|
||||||
@ -244,16 +207,7 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
method.invoke(instance, value);
|
method.invoke(instance, value);
|
||||||
} else {
|
} else {
|
||||||
// Not a collection
|
// Not a collection
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: not a collection");
|
|
||||||
}
|
|
||||||
Object value = config.get(storageLocation);
|
Object value = config.get(storageLocation);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: name = " + field.getName());
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: value = " + value);
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: property type = " + propertyDescriptor.getPropertyType());
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: value class " + value.getClass());
|
|
||||||
}
|
|
||||||
if (value != null && !value.getClass().equals(MemorySection.class)) {
|
if (value != null && !value.getClass().equals(MemorySection.class)) {
|
||||||
method.invoke(instance, deserialize(value,propertyDescriptor.getPropertyType()));
|
method.invoke(instance, deserialize(value,propertyDescriptor.getPropertyType()));
|
||||||
}
|
}
|
||||||
@ -302,18 +256,11 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
Method method = propertyDescriptor.getReadMethod();
|
Method method = propertyDescriptor.getReadMethod();
|
||||||
// Invoke the read method to get the value. We have no idea what type of value it is.
|
// Invoke the read method to get the value. We have no idea what type of value it is.
|
||||||
Object value = method.invoke(instance);
|
Object value = method.invoke(instance);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: field = " + field.getName() + " value = " + value);
|
|
||||||
}
|
|
||||||
String storageLocation = field.getName();
|
String storageLocation = field.getName();
|
||||||
// Check if there is an annotation on the field
|
// Check if there is an annotation on the field
|
||||||
ConfigEntry configEntry = field.getAnnotation(ConfigEntry.class);
|
ConfigEntry configEntry = field.getAnnotation(ConfigEntry.class);
|
||||||
// If there is a config path annotation then do something
|
// If there is a config path annotation then do something
|
||||||
if (configEntry != null) {
|
if (configEntry != null) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: configEntry fould " + configEntry.toString() + " " + configEntry.specificTo());
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: " + field.getName());
|
|
||||||
}
|
|
||||||
if (!configEntry.specificTo().equals(GameType.BOTH) && !configEntry.specificTo().equals(Constants.GAMETYPE)) {
|
if (!configEntry.specificTo().equals(GameType.BOTH) && !configEntry.specificTo().equals(Constants.GAMETYPE)) {
|
||||||
continue fields;
|
continue fields;
|
||||||
}
|
}
|
||||||
@ -338,9 +285,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
// Adapter
|
// Adapter
|
||||||
Adapter adapterNotation = field.getAnnotation(Adapter.class);
|
Adapter adapterNotation = field.getAnnotation(Adapter.class);
|
||||||
if (adapterNotation != null && AdapterInterface.class.isAssignableFrom(adapterNotation.value())) {
|
if (adapterNotation != null && AdapterInterface.class.isAssignableFrom(adapterNotation.value())) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: there is an adapter");
|
|
||||||
}
|
|
||||||
// A conversion adapter has been defined
|
// A conversion adapter has been defined
|
||||||
try {
|
try {
|
||||||
config.set(storageLocation, ((AdapterInterface<?,?>)adapterNotation.value().newInstance()).deserialize(value));
|
config.set(storageLocation, ((AdapterInterface<?,?>)adapterNotation.value().newInstance()).deserialize(value));
|
||||||
@ -399,9 +343,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
throw new IllegalArgumentException("No uniqueId in class");
|
throw new IllegalArgumentException("No uniqueId in class");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: Saving YAML file : " + path + " " + filename);
|
|
||||||
}
|
|
||||||
databaseConnecter.saveYamlFile(config, path, filename, yamlComments);
|
databaseConnecter.saveYamlFile(config, path, filename, yamlComments);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,13 +374,6 @@ public class FlatFileDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
private Object deserialize(Object value, Class<? extends Object> clazz) {
|
private Object deserialize(Object value, Class<? extends Object> clazz) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info(() -> "DEBUG: deserialize - class is " + clazz.getCanonicalName());
|
|
||||||
plugin.getLogger().info("DEBUG: value is " + value);
|
|
||||||
if (value != null) {
|
|
||||||
plugin.getLogger().info("DEBUG: value class is " + value.getClass().getCanonicalName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// If value is already null, then it can be nothing else
|
// If value is already null, then it can be nothing else
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -12,9 +12,9 @@ import org.bukkit.event.inventory.InventoryCloseEvent;
|
|||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.panels.ClickType;
|
import us.tastybento.bskyblock.api.panels.ClickType;
|
||||||
import us.tastybento.bskyblock.api.panels.Panel;
|
import us.tastybento.bskyblock.api.panels.Panel;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
public class PanelListenerManager implements Listener {
|
public class PanelListenerManager implements Listener {
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@ import org.bukkit.event.Event;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag.Type;
|
import us.tastybento.bskyblock.api.flags.Flag.Type;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.managers.IslandsManager;
|
import us.tastybento.bskyblock.managers.IslandsManager;
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@ import org.bukkit.event.entity.EntityChangeBlockEvent;
|
|||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.util.BlockIterator;
|
import org.bukkit.util.BlockIterator;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,7 +7,18 @@ import java.util.HashMap;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.Animals;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.IronGolem;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Monster;
|
||||||
|
import org.bukkit.entity.Parrot;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Projectile;
|
||||||
|
import org.bukkit.entity.Slime;
|
||||||
|
import org.bukkit.entity.Snowman;
|
||||||
|
import org.bukkit.entity.Squid;
|
||||||
|
import org.bukkit.entity.Villager;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@ -20,8 +31,8 @@ import org.bukkit.event.player.PlayerInteractEntityEvent;
|
|||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,13 +94,9 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((e.getCaught() instanceof Animals || e.getCaught() instanceof IronGolem || e.getCaught() instanceof Snowman)
|
if (((e.getCaught() instanceof Animals || e.getCaught() instanceof IronGolem || e.getCaught() instanceof Snowman) && checkIsland(e, e.getCaught().getLocation(), Flags.HURT_ANIMALS))
|
||||||
&& checkIsland(e, e.getCaught().getLocation(), Flags.HURT_ANIMALS)) {
|
|| ((e.getCaught() instanceof Monster || e.getCaught() instanceof Squid || e.getCaught() instanceof Slime) && checkIsland(e, e.getCaught().getLocation(), Flags.HURT_MONSTERS))
|
||||||
e.getHook().remove();
|
|| (e.getCaught() instanceof Villager && checkIsland(e, e.getCaught().getLocation(), Flags.HURT_VILLAGERS))) {
|
||||||
} else if (e.getCaught() instanceof Villager && checkIsland(e, e.getCaught().getLocation(), Flags.HURT_VILLAGERS)) {
|
|
||||||
e.getHook().remove();
|
|
||||||
} else if ((e.getCaught() instanceof Monster || e.getCaught() instanceof Squid || e.getCaught() instanceof Slime)
|
|
||||||
&& checkIsland(e, e.getCaught().getLocation(), Flags.HURT_MONSTERS)) {
|
|
||||||
e.getHook().remove();
|
e.getHook().remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,8 @@ import org.bukkit.event.entity.PotionSplashEvent;
|
|||||||
import org.bukkit.event.player.PlayerFishEvent;
|
import org.bukkit.event.player.PlayerFishEvent;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: PVP is different to other flags - it's either allowed for everyone or not allowed for everyone. Currently owners can hit visitors.
|
* TODO: PVP is different to other flags - it's either allowed for everyone or not allowed for everyone. Currently owners can hit visitors.
|
||||||
|
@ -40,7 +40,6 @@ import us.tastybento.bskyblock.util.teleport.SafeTeleportBuilder;
|
|||||||
*/
|
*/
|
||||||
public class IslandsManager {
|
public class IslandsManager {
|
||||||
|
|
||||||
private static final boolean DEBUG = false;
|
|
||||||
/**
|
/**
|
||||||
* Checks if this location is safe for a player to teleport to. Used by
|
* Checks if this location is safe for a player to teleport to. Used by
|
||||||
* warps and boat exits Unsafe is any liquid or air and also if there's no
|
* warps and boat exits Unsafe is any liquid or air and also if there's no
|
||||||
@ -54,14 +53,9 @@ public class IslandsManager {
|
|||||||
if (l == null) {
|
if (l == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// TODO: improve the safe location finding.
|
|
||||||
//Bukkit.getLogger().info("DEBUG: " + l.toString());
|
|
||||||
final Block ground = l.getBlock().getRelative(BlockFace.DOWN);
|
final Block ground = l.getBlock().getRelative(BlockFace.DOWN);
|
||||||
final Block space1 = l.getBlock();
|
final Block space1 = l.getBlock();
|
||||||
final Block space2 = l.getBlock().getRelative(BlockFace.UP);
|
final Block space2 = l.getBlock().getRelative(BlockFace.UP);
|
||||||
//Bukkit.getLogger().info("DEBUG: ground = " + ground.getType());
|
|
||||||
//Bukkit.getLogger().info("DEBUG: space 1 = " + space1.getType());
|
|
||||||
//Bukkit.getLogger().info("DEBUG: space 2 = " + space2.getType());
|
|
||||||
// Portals are not "safe"
|
// Portals are not "safe"
|
||||||
if (space1.getType() == Material.PORTAL || ground.getType() == Material.PORTAL || space2.getType() == Material.PORTAL
|
if (space1.getType() == Material.PORTAL || ground.getType() == Material.PORTAL || space2.getType() == Material.PORTAL
|
||||||
|| space1.getType() == Material.ENDER_PORTAL || ground.getType() == Material.ENDER_PORTAL || space2.getType() == Material.ENDER_PORTAL) {
|
|| space1.getType() == Material.ENDER_PORTAL || ground.getType() == Material.ENDER_PORTAL || space2.getType() == Material.ENDER_PORTAL) {
|
||||||
@ -70,40 +64,32 @@ public class IslandsManager {
|
|||||||
// If ground is AIR, then this is either not good, or they are on slab,
|
// If ground is AIR, then this is either not good, or they are on slab,
|
||||||
// stair, etc.
|
// stair, etc.
|
||||||
if (ground.getType() == Material.AIR) {
|
if (ground.getType() == Material.AIR) {
|
||||||
// Bukkit.getLogger().info("DEBUG: air");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// In BSkyBlock, liquid may be unsafe
|
// In BSkyBlock, liquid may be unsafe
|
||||||
// Check if acid has no damage
|
// Check if acid has no damage
|
||||||
if (plugin.getSettings().getAcidDamage() > 0D && (ground.isLiquid() || space1.isLiquid() || space2.isLiquid())) {
|
if (plugin.getSettings().getAcidDamage() > 0D && (ground.isLiquid() || space1.isLiquid() || space2.isLiquid())) {
|
||||||
// Bukkit.getLogger().info("DEBUG: acid");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ground.getType().equals(Material.STATIONARY_LAVA) || ground.getType().equals(Material.LAVA)
|
if (ground.getType().equals(Material.STATIONARY_LAVA) || ground.getType().equals(Material.LAVA)
|
||||||
|| space1.getType().equals(Material.STATIONARY_LAVA) || space1.getType().equals(Material.LAVA)
|
|| space1.getType().equals(Material.STATIONARY_LAVA) || space1.getType().equals(Material.LAVA)
|
||||||
|| space2.getType().equals(Material.STATIONARY_LAVA) || space2.getType().equals(Material.LAVA)) {
|
|| space2.getType().equals(Material.STATIONARY_LAVA) || space2.getType().equals(Material.LAVA)) {
|
||||||
// Lava check only
|
|
||||||
// Bukkit.getLogger().info("DEBUG: lava");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialData md = ground.getState().getData();
|
MaterialData md = ground.getState().getData();
|
||||||
if (md instanceof SimpleAttachableMaterialData) {
|
if (md instanceof SimpleAttachableMaterialData) {
|
||||||
//Bukkit.getLogger().info("DEBUG: trapdoor/button/tripwire hook etc.");
|
|
||||||
if (md instanceof TrapDoor) {
|
if (md instanceof TrapDoor) {
|
||||||
TrapDoor trapDoor = (TrapDoor)md;
|
TrapDoor trapDoor = (TrapDoor)md;
|
||||||
if (trapDoor.isOpen()) {
|
if (trapDoor.isOpen()) {
|
||||||
//Bukkit.getLogger().info("DEBUG: trapdoor open");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//Bukkit.getLogger().info("DEBUG: trapdoor closed");
|
|
||||||
}
|
}
|
||||||
if (ground.getType().equals(Material.CACTUS) || ground.getType().equals(Material.BOAT) || ground.getType().equals(Material.FENCE)
|
if (ground.getType().equals(Material.CACTUS) || ground.getType().equals(Material.BOAT) || ground.getType().equals(Material.FENCE)
|
||||||
|| ground.getType().equals(Material.NETHER_FENCE) || ground.getType().equals(Material.SIGN_POST) || ground.getType().equals(Material.WALL_SIGN)) {
|
|| ground.getType().equals(Material.NETHER_FENCE) || ground.getType().equals(Material.SIGN_POST) || ground.getType().equals(Material.WALL_SIGN)) {
|
||||||
// Bukkit.getLogger().info("DEBUG: cactus");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Check that the space is not solid
|
// Check that the space is not solid
|
||||||
@ -118,9 +104,9 @@ public class IslandsManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Safe
|
// Safe
|
||||||
//Bukkit.getLogger().info("DEBUG: safe!");
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BSkyBlock plugin;
|
private BSkyBlock plugin;
|
||||||
|
|
||||||
private BSBDatabase database;
|
private BSBDatabase database;
|
||||||
@ -171,13 +157,6 @@ public class IslandsManager {
|
|||||||
depth = l.getBlockY();
|
depth = l.getBlockY();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//plugin.getLogger().info("DEBUG: ranges i = " + i);
|
|
||||||
//plugin.getLogger().info(" " + minX + "," + minZ + " " + maxX + " " + maxZ);
|
|
||||||
//plugin.getLogger().info("DEBUG: height = " + height);
|
|
||||||
//plugin.getLogger().info("DEBUG: depth = " + depth);
|
|
||||||
//plugin.getLogger().info("DEBUG: trying to find a safe spot at " + l.toString());
|
|
||||||
|
|
||||||
// Work outwards from l until the closest safe location is found.
|
// Work outwards from l until the closest safe location is found.
|
||||||
int minXradius = 0;
|
int minXradius = 0;
|
||||||
int maxXradius = 0;
|
int maxXradius = 0;
|
||||||
@ -197,10 +176,8 @@ public class IslandsManager {
|
|||||||
for (int z = minZ; z <= maxZ; z++) {
|
for (int z = minZ; z <= maxZ; z++) {
|
||||||
for (int y = minY; y <= maxY; y++) {
|
for (int y = minY; y <= maxY; y++) {
|
||||||
if (!((x > minX && x < maxX) && (z > minZ && z < maxZ) && (y > minY && y < maxY))) {
|
if (!((x > minX && x < maxX) && (z > minZ && z < maxZ) && (y > minY && y < maxY))) {
|
||||||
//plugin.getLogger().info("DEBUG: checking " + x + "," + y + "," + z);
|
|
||||||
Location ultimate = new Location(l.getWorld(), x + 0.5D, y, z + 0.5D);
|
Location ultimate = new Location(l.getWorld(), x + 0.5D, y, z + 0.5D);
|
||||||
if (isSafeLocation(ultimate)) {
|
if (isSafeLocation(ultimate)) {
|
||||||
//plugin.getLogger().info("DEBUG: Found! " + ultimate);
|
|
||||||
return ultimate;
|
return ultimate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -225,8 +202,6 @@ public class IslandsManager {
|
|||||||
if (maxYradius < height) {
|
if (maxYradius < height) {
|
||||||
maxYradius++;
|
maxYradius++;
|
||||||
}
|
}
|
||||||
//plugin.getLogger().info("DEBUG: Radii " + minXradius + "," + minYradius + "," + minZradius +
|
|
||||||
// "," + maxXradius + "," + maxYradius + "," + maxZradius);
|
|
||||||
} while (minXradius < i || maxXradius < i || minZradius < i || maxZradius < i || minYradius < depth
|
} while (minXradius < i || maxXradius < i || minZradius < i || maxZradius < i || minYradius < depth
|
||||||
|| maxYradius < height);
|
|| maxYradius < height);
|
||||||
// Nothing worked
|
// Nothing worked
|
||||||
@ -249,9 +224,6 @@ public class IslandsManager {
|
|||||||
* @return Island
|
* @return Island
|
||||||
*/
|
*/
|
||||||
public Island createIsland(Location location, UUID owner){
|
public Island createIsland(Location location, UUID owner){
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: adding island for " + owner + " at " + location);
|
|
||||||
}
|
|
||||||
return islandCache.createIsland(new Island(location, owner, plugin.getSettings().getIslandProtectionRange()));
|
return islandCache.createIsland(new Island(location, owner, plugin.getSettings().getIslandProtectionRange()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,13 +248,11 @@ public class IslandsManager {
|
|||||||
try {
|
try {
|
||||||
handler.deleteObject(island);
|
handler.deleteObject(island);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().severe("Could not delete island from database! " + e.getMessage());
|
plugin.getLogger().severe(()->"Could not delete island from database! " + e.getMessage());
|
||||||
}
|
}
|
||||||
// Remove blocks from world
|
// Remove blocks from world
|
||||||
new DeleteIslandChunks(plugin, island);
|
new DeleteIslandChunks(plugin, island);
|
||||||
}
|
}
|
||||||
//getServer().getPluginManager().callEvent(new IslandDeleteEvent(player, island.getCenter()));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -296,19 +266,12 @@ public class IslandsManager {
|
|||||||
*/
|
*/
|
||||||
public void deleteIsland(final UUID player, boolean removeBlocks) {
|
public void deleteIsland(final UUID player, boolean removeBlocks) {
|
||||||
// Removes the island
|
// Removes the island
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: deleting player island");
|
|
||||||
}
|
|
||||||
//CoopPlay.getInstance().clearAllIslandCoops(player);
|
|
||||||
//getWarpSignsListener().removeWarp(player);
|
|
||||||
final Island island = getIsland(player);
|
final Island island = getIsland(player);
|
||||||
if (island != null) {
|
if (island != null) {
|
||||||
deleteIsland(island, removeBlocks);
|
deleteIsland(island, removeBlocks);
|
||||||
} else {
|
} else {
|
||||||
plugin.getLogger().severe("Could not delete player: " + player.toString() + " island!");
|
plugin.getLogger().severe(()->"Could not delete player: " + player.toString() + " island!");
|
||||||
//plugin.getServer().getPluginManager().callEvent(new IslandDeleteEvent(player, null));
|
|
||||||
}
|
}
|
||||||
//players.zeroPlayerData(player);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -359,17 +322,14 @@ public class IslandsManager {
|
|||||||
*/
|
*/
|
||||||
public Optional<Island> getIslandAt(Location location) {
|
public Optional<Island> getIslandAt(Location location) {
|
||||||
if (location == null) {
|
if (location == null) {
|
||||||
//plugin.getLogger().info("DEBUG: location is null");
|
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
// World check
|
// World check
|
||||||
if (!Util.inWorld(location)) {
|
if (!Util.inWorld(location)) {
|
||||||
//plugin.getLogger().info("DEBUG: not in right world");
|
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
// Check if it is spawn
|
// Check if it is spawn
|
||||||
if (spawn != null && spawn.onIsland(location)) {
|
if (spawn != null && spawn.onIsland(location)) {
|
||||||
//plugin.getLogger().info("DEBUG: spawn");
|
|
||||||
return Optional.of(spawn);
|
return Optional.of(spawn);
|
||||||
}
|
}
|
||||||
return Optional.ofNullable(getIslandAt(location.getBlockX(), location.getBlockZ()));
|
return Optional.ofNullable(getIslandAt(location.getBlockX(), location.getBlockZ()));
|
||||||
@ -420,7 +380,6 @@ public class IslandsManager {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public Optional<Island> getProtectedIslandAt(Location location) {
|
public Optional<Island> getProtectedIslandAt(Location location) {
|
||||||
//plugin.getLogger().info("DEBUG: getProtectedIslandAt " + location);
|
|
||||||
// Try spawn
|
// Try spawn
|
||||||
if (spawn != null && spawn.onIsland(location)) {
|
if (spawn != null && spawn.onIsland(location)) {
|
||||||
return Optional.of(spawn);
|
return Optional.of(spawn);
|
||||||
@ -446,9 +405,6 @@ public class IslandsManager {
|
|||||||
l = plugin.getPlayers().getHomeLocation(playerUUID, number);
|
l = plugin.getPlayers().getHomeLocation(playerUUID, number);
|
||||||
}
|
}
|
||||||
// Check if it is safe
|
// Check if it is safe
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: Home location " + l);
|
|
||||||
}
|
|
||||||
if (l != null) {
|
if (l != null) {
|
||||||
if (isSafeLocation(l)) {
|
if (isSafeLocation(l)) {
|
||||||
return l;
|
return l;
|
||||||
@ -464,45 +420,24 @@ public class IslandsManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: Home location either isn't safe, or does not exist so try the island");
|
|
||||||
}
|
|
||||||
// Home location either isn't safe, or does not exist so try the island
|
// Home location either isn't safe, or does not exist so try the island
|
||||||
// location
|
// location
|
||||||
if (plugin.getPlayers().inTeam(playerUUID)) {
|
if (plugin.getPlayers().inTeam(playerUUID)) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG:player is in team");
|
|
||||||
}
|
|
||||||
l = plugin.getIslands().getIslandLocation(playerUUID);
|
l = plugin.getIslands().getIslandLocation(playerUUID);
|
||||||
if (isSafeLocation(l)) {
|
if (isSafeLocation(l)) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG:island loc is safe");
|
|
||||||
}
|
|
||||||
plugin.getPlayers().setHomeLocation(playerUUID, l, number);
|
plugin.getPlayers().setHomeLocation(playerUUID, l, number);
|
||||||
return l;
|
return l;
|
||||||
} else {
|
} else {
|
||||||
// try team leader's home
|
// try team leader's home
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: trying leader's home");
|
|
||||||
}
|
|
||||||
Location tlh = plugin.getPlayers().getHomeLocation(plugin.getIslands().getTeamLeader(playerUUID));
|
Location tlh = plugin.getPlayers().getHomeLocation(plugin.getIslands().getTeamLeader(playerUUID));
|
||||||
if (tlh != null) {
|
if (tlh != null) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: leader has a home");
|
|
||||||
}
|
|
||||||
if (isSafeLocation(tlh)) {
|
if (isSafeLocation(tlh)) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: team leader's home is safe");
|
|
||||||
}
|
|
||||||
plugin.getPlayers().setHomeLocation(playerUUID, tlh, number);
|
plugin.getPlayers().setHomeLocation(playerUUID, tlh, number);
|
||||||
return tlh;
|
return tlh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: player is not in team - trying island location");
|
|
||||||
}
|
|
||||||
l = plugin.getIslands().getIslandLocation(playerUUID);
|
l = plugin.getIslands().getIslandLocation(playerUUID);
|
||||||
if (isSafeLocation(l)) {
|
if (isSafeLocation(l)) {
|
||||||
plugin.getPlayers().setHomeLocation(playerUUID, l, number);
|
plugin.getPlayers().setHomeLocation(playerUUID, l, number);
|
||||||
@ -510,35 +445,23 @@ public class IslandsManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (l == null) {
|
if (l == null) {
|
||||||
plugin.getLogger().warning(plugin.getPlayers().getName(playerUUID) + " player has no island!");
|
plugin.getLogger().warning(()-> plugin.getPlayers().getName(playerUUID) + " player has no island!");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: If these island locations are not safe, then we need to get creative");
|
|
||||||
}
|
|
||||||
// If these island locations are not safe, then we need to get creative
|
// If these island locations are not safe, then we need to get creative
|
||||||
// Try the default location
|
// Try the default location
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: try default location");
|
|
||||||
}
|
|
||||||
Location dl = new Location(l.getWorld(), l.getX() + 0.5D, l.getY() + 5D, l.getZ() + 2.5D, 0F, 30F);
|
Location dl = new Location(l.getWorld(), l.getX() + 0.5D, l.getY() + 5D, l.getZ() + 2.5D, 0F, 30F);
|
||||||
if (isSafeLocation(dl)) {
|
if (isSafeLocation(dl)) {
|
||||||
plugin.getPlayers().setHomeLocation(playerUUID, dl, number);
|
plugin.getPlayers().setHomeLocation(playerUUID, dl, number);
|
||||||
return dl;
|
return dl;
|
||||||
}
|
}
|
||||||
// Try just above the bedrock
|
// Try just above the bedrock
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: above bedrock");
|
|
||||||
}
|
|
||||||
dl = new Location(l.getWorld(), l.getX() + 0.5D, l.getY() + 5D, l.getZ() + 0.5D, 0F, 30F);
|
dl = new Location(l.getWorld(), l.getX() + 0.5D, l.getY() + 5D, l.getZ() + 0.5D, 0F, 30F);
|
||||||
if (isSafeLocation(dl)) {
|
if (isSafeLocation(dl)) {
|
||||||
plugin.getPlayers().setHomeLocation(playerUUID, dl, number);
|
plugin.getPlayers().setHomeLocation(playerUUID, dl, number);
|
||||||
return dl;
|
return dl;
|
||||||
}
|
}
|
||||||
// Try all the way up to the sky
|
// Try all the way up to the sky
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: try all the way to the sky");
|
|
||||||
}
|
|
||||||
for (int y = l.getBlockY(); y < 255; y++) {
|
for (int y = l.getBlockY(); y < 255; y++) {
|
||||||
final Location n = new Location(l.getWorld(), l.getX() + 0.5D, y, l.getZ() + 0.5D);
|
final Location n = new Location(l.getWorld(), l.getX() + 0.5D, y, l.getZ() + 0.5D);
|
||||||
if (isSafeLocation(n)) {
|
if (isSafeLocation(n)) {
|
||||||
@ -546,9 +469,6 @@ public class IslandsManager {
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: unsuccessful");
|
|
||||||
}
|
|
||||||
// Unsuccessful
|
// Unsuccessful
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -561,11 +481,7 @@ public class IslandsManager {
|
|||||||
* @return the spawnPoint or null if spawn does not exist
|
* @return the spawnPoint or null if spawn does not exist
|
||||||
*/
|
*/
|
||||||
public Location getSpawnPoint() {
|
public Location getSpawnPoint() {
|
||||||
//plugin.getLogger().info("DEBUG: getting spawn point : " + spawn.getSpawnPoint());
|
return spawn == null ? null : spawn.getSpawnPoint();
|
||||||
if (spawn == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return spawn.getSpawnPoint();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -602,14 +518,7 @@ public class IslandsManager {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void homeTeleport(final Player player, int number) {
|
public void homeTeleport(final Player player, int number) {
|
||||||
Location home;
|
Location home = getSafeHomeLocation(player.getUniqueId(), number);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("home teleport called for #" + number);
|
|
||||||
}
|
|
||||||
home = getSafeHomeLocation(player.getUniqueId(), number);
|
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("home get safe loc = " + home);
|
|
||||||
}
|
|
||||||
// Check if the player is a passenger in a boat
|
// Check if the player is a passenger in a boat
|
||||||
if (player.isInsideVehicle()) {
|
if (player.isInsideVehicle()) {
|
||||||
Entity boat = player.getVehicle();
|
Entity boat = player.getVehicle();
|
||||||
@ -622,9 +531,6 @@ public class IslandsManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (home == null) {
|
if (home == null) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("Fixing home location using safe spot teleport");
|
|
||||||
}
|
|
||||||
// Try to fix this teleport location and teleport the player if possible
|
// Try to fix this teleport location and teleport the player if possible
|
||||||
new SafeTeleportBuilder(plugin).entity(player)
|
new SafeTeleportBuilder(plugin).entity(player)
|
||||||
.island(plugin.getIslands().getIsland(player.getUniqueId()))
|
.island(plugin.getIslands().getIsland(player.getUniqueId()))
|
||||||
@ -632,9 +538,6 @@ public class IslandsManager {
|
|||||||
.build();
|
.build();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: home loc = " + home + " teleporting");
|
|
||||||
}
|
|
||||||
player.teleport(home);
|
player.teleport(home);
|
||||||
User user = User.getInstance(player);
|
User user = User.getInstance(player);
|
||||||
if (number == 1) {
|
if (number == 1) {
|
||||||
@ -679,7 +582,6 @@ public class IslandsManager {
|
|||||||
if (!plugin.getSettings().isUseOwnGenerator()) {
|
if (!plugin.getSettings().isUseOwnGenerator()) {
|
||||||
// Block check
|
// Block check
|
||||||
if (!location.getBlock().isEmpty() && !location.getBlock().isLiquid()) {
|
if (!location.getBlock().isEmpty() && !location.getBlock().isLiquid()) {
|
||||||
plugin.getLogger().info("Found solid block at island height - adding");
|
|
||||||
createIsland(location);
|
createIsland(location);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -690,7 +592,6 @@ public class IslandsManager {
|
|||||||
for (int z = -5; z <= 5; z++) {
|
for (int z = -5; z <= 5; z++) {
|
||||||
if (!location.getWorld().getBlockAt(x + location.getBlockX(), y, z + location.getBlockZ()).isEmpty()
|
if (!location.getWorld().getBlockAt(x + location.getBlockX(), y, z + location.getBlockZ()).isEmpty()
|
||||||
&& !location.getWorld().getBlockAt(x + location.getBlockX(), y, z + location.getBlockZ()).isLiquid()) {
|
&& !location.getWorld().getBlockAt(x + location.getBlockX(), y, z + location.getBlockZ()).isLiquid()) {
|
||||||
plugin.getLogger().info("Solid block found during long search - adding ");
|
|
||||||
createIsland(location);
|
createIsland(location);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -721,10 +622,7 @@ public class IslandsManager {
|
|||||||
* @return true if the player is the owner of their island, i.e., owner or team leader
|
* @return true if the player is the owner of their island, i.e., owner or team leader
|
||||||
*/
|
*/
|
||||||
public boolean isOwner(UUID uniqueId) {
|
public boolean isOwner(UUID uniqueId) {
|
||||||
if (hasIsland(uniqueId)) {
|
return hasIsland(uniqueId) ? getIsland(uniqueId).getOwner().equals(uniqueId) : false;
|
||||||
return getIsland(uniqueId).getOwner().equals(uniqueId);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -734,21 +632,11 @@ public class IslandsManager {
|
|||||||
islandCache.clear();
|
islandCache.clear();
|
||||||
spawn = null;
|
spawn = null;
|
||||||
try {
|
try {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: loading grid");
|
|
||||||
}
|
|
||||||
for (Island island : handler.loadObjects()) {
|
for (Island island : handler.loadObjects()) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: adding island at "+ island.getCenter());
|
|
||||||
}
|
|
||||||
islandCache.addIsland(island);
|
islandCache.addIsland(island);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().severe("Could not load islands to cache! " + e.getMessage());
|
plugin.getLogger().severe(()->"Could not load islands to cache! " + e.getMessage());
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: islands loaded");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -822,9 +710,6 @@ public class IslandsManager {
|
|||||||
* @param playerUUID - the player's UUID
|
* @param playerUUID - the player's UUID
|
||||||
*/
|
*/
|
||||||
public void removePlayer(UUID playerUUID) {
|
public void removePlayer(UUID playerUUID) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: removing player");
|
|
||||||
}
|
|
||||||
islandCache.removePlayer(playerUUID);
|
islandCache.removePlayer(playerUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -837,22 +722,18 @@ public class IslandsManager {
|
|||||||
// Teleport players away
|
// Teleport players away
|
||||||
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
||||||
if (island.inIslandSpace(player.getLocation().getBlockX(), player.getLocation().getBlockZ())) {
|
if (island.inIslandSpace(player.getLocation().getBlockX(), player.getLocation().getBlockZ())) {
|
||||||
//plugin.getLogger().info("DEBUG: in island space");
|
|
||||||
// Teleport island players to their island home
|
// Teleport island players to their island home
|
||||||
if (plugin.getPlayers().hasIsland(player.getUniqueId()) || plugin.getPlayers().inTeam(player.getUniqueId())) {
|
if (plugin.getPlayers().hasIsland(player.getUniqueId()) || plugin.getPlayers().inTeam(player.getUniqueId())) {
|
||||||
//plugin.getLogger().info("DEBUG: home teleport");
|
|
||||||
homeTeleport(player);
|
homeTeleport(player);
|
||||||
} else {
|
} else {
|
||||||
//plugin.getLogger().info("DEBUG: move player to spawn");
|
|
||||||
// Move player to spawn
|
// Move player to spawn
|
||||||
Island spawn = getSpawn();
|
Island spawn = getSpawn();
|
||||||
if (spawn != null) {
|
if (spawn != null) {
|
||||||
// go to island spawn
|
// go to island spawn
|
||||||
player.teleport(plugin.getIslandWorldManager().getIslandWorld().getSpawnLocation());
|
player.teleport(plugin.getIslandWorldManager().getIslandWorld().getSpawnLocation());
|
||||||
//plugin.getLogger().warning("During island deletion player " + player.getName() + " sent to spawn.");
|
|
||||||
} else {
|
} else {
|
||||||
if (!player.performCommand(Constants.SPAWNCOMMAND)) {
|
if (!player.performCommand(Constants.SPAWNCOMMAND)) {
|
||||||
plugin.getLogger().warning(
|
plugin.getLogger().warning(()->
|
||||||
"During island deletion player " + player.getName() + " could not be sent to spawn so was dropped, sorry.");
|
"During island deletion player " + player.getName() + " could not be sent to spawn so was dropped, sorry.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -869,36 +750,26 @@ public class IslandsManager {
|
|||||||
Collection<Island> collection = islandCache.getIslands();
|
Collection<Island> collection = islandCache.getIslands();
|
||||||
if(async){
|
if(async){
|
||||||
Runnable save = () -> {
|
Runnable save = () -> {
|
||||||
int index = 1;
|
|
||||||
for(Island island : collection){
|
for(Island island : collection){
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: saving island async " + index++);
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
handler.saveObject(island);
|
handler.saveObject(island);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().severe("Could not save island to datavase when running async! " + e.getMessage());
|
plugin.getLogger().severe(()->"Could not save island to datavase when running async! " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, save);
|
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, save);
|
||||||
} else {
|
} else {
|
||||||
int index = 1;
|
|
||||||
for(Island island : collection){
|
for(Island island : collection){
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: saving island " + index++);
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
handler.saveObject(island);
|
handler.saveObject(island);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().severe("Could not save island to datavase when running sync! " + e.getMessage());
|
plugin.getLogger().severe(()->"Could not save island to datavase when running sync! " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metrics-related methods //
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the island name
|
* Set the island name
|
||||||
* @param owner - the island owner
|
* @param owner - the island owner
|
||||||
@ -915,15 +786,8 @@ public class IslandsManager {
|
|||||||
*/
|
*/
|
||||||
public boolean setJoinTeam(Island teamIsland, UUID playerUUID) {
|
public boolean setJoinTeam(Island teamIsland, UUID playerUUID) {
|
||||||
// Add player to new island
|
// Add player to new island
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: Adding player to new island");
|
|
||||||
}
|
|
||||||
teamIsland.addMember(playerUUID);
|
teamIsland.addMember(playerUUID);
|
||||||
islandCache.addPlayer(playerUUID, teamIsland);
|
islandCache.addPlayer(playerUUID, teamIsland);
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: new team member list:");
|
|
||||||
plugin.getLogger().info(teamIsland.getMemberSet().toString());
|
|
||||||
}
|
|
||||||
// Save the database
|
// Save the database
|
||||||
save(false);
|
save(false);
|
||||||
|
|
||||||
@ -939,9 +803,6 @@ public class IslandsManager {
|
|||||||
* @param playerUUID - the player's UUID
|
* @param playerUUID - the player's UUID
|
||||||
*/
|
*/
|
||||||
public void setLeaveTeam(UUID playerUUID) {
|
public void setLeaveTeam(UUID playerUUID) {
|
||||||
if (DEBUG) {
|
|
||||||
plugin.getLogger().info("DEBUG: leaving team");
|
|
||||||
}
|
|
||||||
plugin.getPlayers().clearHomeLocations(playerUUID);
|
plugin.getPlayers().clearHomeLocations(playerUUID);
|
||||||
removePlayer(playerUUID);
|
removePlayer(playerUUID);
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,8 @@ import java.util.HashMap;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.localization.BSBLocale;
|
import us.tastybento.bskyblock.api.localization.BSBLocale;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.util.FileLister;
|
import us.tastybento.bskyblock.util.FileLister;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,7 +2,6 @@ package us.tastybento.bskyblock.managers;
|
|||||||
|
|
||||||
import java.beans.IntrospectionException;
|
import java.beans.IntrospectionException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -586,8 +585,7 @@ public class PlayersManager{
|
|||||||
|
|
||||||
} catch (IllegalAccessException | IllegalArgumentException
|
} catch (IllegalAccessException | IllegalArgumentException
|
||||||
| InvocationTargetException | SecurityException
|
| InvocationTargetException | SecurityException
|
||||||
| InstantiationException | NoSuchMethodException
|
| IntrospectionException e) {
|
||||||
| IntrospectionException | SQLException e) {
|
|
||||||
plugin.getLogger().severe("Could not save player to database: " + playerUUID + " " + e.getMessage());
|
plugin.getLogger().severe("Could not save player to database: " + playerUUID + " " + e.getMessage());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package us.tastybento.bskyblock.panels;
|
package us.tastybento.bskyblock.panels;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
import us.tastybento.bskyblock.api.panels.builders.PanelBuilder;
|
import us.tastybento.bskyblock.api.panels.builders.PanelBuilder;
|
||||||
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Poslovitch
|
* @author Poslovitch
|
||||||
|
@ -51,11 +51,11 @@ import us.tastybento.bskyblock.BSkyBlock;
|
|||||||
import us.tastybento.bskyblock.Constants;
|
import us.tastybento.bskyblock.Constants;
|
||||||
import us.tastybento.bskyblock.Settings;
|
import us.tastybento.bskyblock.Settings;
|
||||||
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.generators.IslandWorld;
|
import us.tastybento.bskyblock.generators.IslandWorld;
|
||||||
import us.tastybento.bskyblock.listeners.flags.AbstractFlagListener;
|
import us.tastybento.bskyblock.listeners.flags.AbstractFlagListener;
|
||||||
|
@ -28,9 +28,9 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.powermock.modules.junit4.PowerMockRunner;
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.user.User;
|
|
||||||
import us.tastybento.bskyblock.api.panels.ClickType;
|
import us.tastybento.bskyblock.api.panels.ClickType;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
|
import us.tastybento.bskyblock.api.user.User;
|
||||||
|
|
||||||
@RunWith(PowerMockRunner.class)
|
@RunWith(PowerMockRunner.class)
|
||||||
public class PanelItemBuilderTest {
|
public class PanelItemBuilderTest {
|
||||||
|
@ -30,8 +30,6 @@ import org.powermock.reflect.Whitebox;
|
|||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.Settings;
|
import us.tastybento.bskyblock.Settings;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.Flag;
|
||||||
import us.tastybento.bskyblock.database.mysql.MySQLDatabaseConnecter;
|
|
||||||
import us.tastybento.bskyblock.database.mysql.MySQLDatabaseHandler;
|
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.database.objects.Players;
|
import us.tastybento.bskyblock.database.objects.Players;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flags;
|
||||||
|
Loading…
Reference in New Issue
Block a user