🎨 Code quality improvements
This commit is contained in:
parent
663e93e37c
commit
e53e25cd01
11 changed files with 86 additions and 64 deletions
|
@ -36,8 +36,8 @@ import java.util.Set;
|
|||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
public class MapManager {
|
||||
protected final Set<Integer> OCCUPIED_IDS = new HashSet<>();
|
||||
private final List<MapWrapper> MANAGED_MAPS = new CopyOnWriteArrayList<>();
|
||||
protected final Set<Integer> occupiedIds = new HashSet<>();
|
||||
private final List<MapWrapper> managedMaps = new CopyOnWriteArrayList<>();
|
||||
|
||||
/**
|
||||
* Wrap a {@link BufferedImage} in a {@link MapWrapper}
|
||||
|
@ -57,7 +57,7 @@ public class MapManager {
|
|||
*/
|
||||
public MapWrapper wrapImage(ArrayImage image) {
|
||||
if (Configuration.getInstance().isImageCache()) {
|
||||
for (MapWrapper wrapper : MANAGED_MAPS) {
|
||||
for (MapWrapper wrapper : managedMaps) {
|
||||
if (wrapper.getContent().equals(image)) return wrapper;
|
||||
}
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public class MapManager {
|
|||
*/
|
||||
private MapWrapper wrapNewImage(ArrayImage image) {
|
||||
MapWrapper wrapper = new MapWrapper(image);
|
||||
MANAGED_MAPS.add(wrapper);
|
||||
managedMaps.add(wrapper);
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ public class MapManager {
|
|||
public void unwrapImage(MapWrapper wrapper) {
|
||||
wrapper.controller.cancelSend();
|
||||
wrapper.getController().clearViewers();
|
||||
MANAGED_MAPS.remove(wrapper);
|
||||
managedMaps.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -95,7 +95,7 @@ public class MapManager {
|
|||
*/
|
||||
public Set<MapWrapper> getMapsVisibleTo(OfflinePlayer player) {
|
||||
Set<MapWrapper> visible = new HashSet<>();
|
||||
for (MapWrapper wrapper : MANAGED_MAPS) {
|
||||
for (MapWrapper wrapper : managedMaps) {
|
||||
if (wrapper.getController().isViewing(player)) {
|
||||
visible.add(wrapper);
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ public class MapManager {
|
|||
* @param id The map ID to register
|
||||
*/
|
||||
public void registerOccupiedID(int id) {
|
||||
OCCUPIED_IDS.add(id);
|
||||
occupiedIds.add(id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -135,7 +135,7 @@ public class MapManager {
|
|||
* @param id The map ID to unregister
|
||||
*/
|
||||
public void unregisterOccupiedID(int id) {
|
||||
OCCUPIED_IDS.remove(id);
|
||||
occupiedIds.remove(id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -146,7 +146,7 @@ public class MapManager {
|
|||
*/
|
||||
public Set<Integer> getOccupiedIdsFor(OfflinePlayer player) {
|
||||
Set<Integer> ids = new HashSet<>();
|
||||
for (MapWrapper wrapper : MANAGED_MAPS) {
|
||||
for (MapWrapper wrapper : managedMaps) {
|
||||
int s = wrapper.getController().getMapId(player);
|
||||
if (s >= 0) {
|
||||
ids.add(s);
|
||||
|
@ -176,7 +176,7 @@ public class MapManager {
|
|||
public int getNextFreeIdFor(Player player) throws MapLimitExceededException {
|
||||
Set<Integer> occupied = getOccupiedIdsFor(player);
|
||||
//Add the 'default' occupied IDs
|
||||
occupied.addAll(OCCUPIED_IDS);
|
||||
occupied.addAll(occupiedIds);
|
||||
|
||||
int largest = 0;
|
||||
for (Integer s : occupied) {
|
||||
|
@ -222,7 +222,7 @@ public class MapManager {
|
|||
*/
|
||||
@Nullable
|
||||
public MapWrapper getDuplicate(ArrayImage image) {
|
||||
for (MapWrapper wrapper : MANAGED_MAPS) {
|
||||
for (MapWrapper wrapper : managedMaps) {
|
||||
if (image.equals(wrapper.getContent())) {
|
||||
return wrapper;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,9 @@ public class MapSender {
|
|||
private static final List<QueuedMap> sendQueue = new ArrayList<>();
|
||||
private static int senderID = -1;
|
||||
|
||||
private MapSender() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a map to the send queue
|
||||
*
|
||||
|
|
|
@ -39,6 +39,7 @@ import tech.sbdevelopment.mapreflectionapi.utils.ReflectionUtil;
|
|||
import java.util.*;
|
||||
|
||||
public class MapWrapper {
|
||||
private static final String REFERENCE_METADATA = "MAP_WRAPPER_REF";
|
||||
protected ArrayImage content;
|
||||
|
||||
/**
|
||||
|
@ -246,8 +247,8 @@ public class MapWrapper {
|
|||
Bukkit.getScheduler().runTask(MapReflectionAPI.getInstance(), () -> {
|
||||
ItemFrame frame = getItemFrameById(player.getWorld(), entityId);
|
||||
if (frame != null) {
|
||||
frame.removeMetadata("MAP_WRAPPER_REF", MapReflectionAPI.getInstance());
|
||||
frame.setMetadata("MAP_WRAPPER_REF", new FixedMetadataValue(MapReflectionAPI.getInstance(), MapWrapper.this));
|
||||
frame.removeMetadata(REFERENCE_METADATA, MapReflectionAPI.getInstance());
|
||||
frame.setMetadata(REFERENCE_METADATA, new FixedMetadataValue(MapReflectionAPI.getInstance(), MapWrapper.this));
|
||||
}
|
||||
|
||||
sendItemFramePacket(player, entityId, stack, getMapId(player));
|
||||
|
@ -256,12 +257,16 @@ public class MapWrapper {
|
|||
|
||||
@Override
|
||||
public void clearFrame(Player player, int entityId) {
|
||||
|
||||
sendItemFramePacket(player, entityId, null, -1);
|
||||
Bukkit.getScheduler().runTask(MapReflectionAPI.getInstance(), () -> {
|
||||
ItemFrame frame = getItemFrameById(player.getWorld(), entityId);
|
||||
if (frame != null) frame.removeMetadata(REFERENCE_METADATA, MapReflectionAPI.getInstance());
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFrame(Player player, ItemFrame frame) {
|
||||
|
||||
clearFrame(player, frame.getEntityId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.bukkit.event.Cancellable;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import tech.sbdevelopment.mapreflectionapi.MapReflectionAPI;
|
||||
import tech.sbdevelopment.mapreflectionapi.api.MapWrapper;
|
||||
|
@ -67,7 +68,7 @@ public class CreateInventoryMapUpdateEvent extends Event implements Cancellable
|
|||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* This event gets fired when a map creation is cancelled
|
||||
|
@ -58,7 +59,7 @@ public class MapCancelEvent extends Event implements Cancellable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,10 @@ package tech.sbdevelopment.mapreflectionapi.api.events;
|
|||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import tech.sbdevelopment.mapreflectionapi.api.ArrayImage;
|
||||
import tech.sbdevelopment.mapreflectionapi.api.MapWrapper;
|
||||
|
||||
|
@ -40,7 +42,8 @@ public class MapContentUpdateEvent extends Event {
|
|||
|
||||
private final MapWrapper wrapper;
|
||||
private final ArrayImage content;
|
||||
private final boolean sendContent = true;
|
||||
@Setter
|
||||
private boolean sendContent = true;
|
||||
|
||||
/**
|
||||
* Construct a new {@link MapContentUpdateEvent}
|
||||
|
@ -56,7 +59,7 @@ public class MapContentUpdateEvent extends Event {
|
|||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.bukkit.event.Cancellable;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.util.Vector;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import tech.sbdevelopment.mapreflectionapi.MapReflectionAPI;
|
||||
import tech.sbdevelopment.mapreflectionapi.api.MapWrapper;
|
||||
|
@ -74,7 +75,7 @@ public class MapInteractEvent extends Event implements Cancellable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,16 +23,11 @@
|
|||
|
||||
package tech.sbdevelopment.mapreflectionapi.api.exceptions;
|
||||
|
||||
import lombok.experimental.StandardException;
|
||||
|
||||
/**
|
||||
* This exception gets thrown if no map IDs are available
|
||||
*/
|
||||
@StandardException
|
||||
public class MapLimitExceededException extends Exception {
|
||||
/**
|
||||
* Construct a new {@link MapLimitExceededException}
|
||||
*
|
||||
* @param message The message in this exception
|
||||
*/
|
||||
public MapLimitExceededException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,8 +45,21 @@ public class PacketListener extends PacketAdapter {
|
|||
|
||||
@Override
|
||||
public void onPacketSending(PacketEvent event) {
|
||||
if (event.getPacketType() != PacketType.Play.Server.MAP) return; //Make sure it's the right packet!
|
||||
if (event.getPacketType() == PacketType.Play.Server.MAP) {
|
||||
handleOUTMapPacket(event);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPacketReceiving(PacketEvent event) {
|
||||
if (event.getPacketType() == PacketType.Play.Client.USE_ENTITY) {
|
||||
handleINUseEntityPacket(event);
|
||||
} else if (event.getPacketType() == PacketType.Play.Client.SET_CREATIVE_SLOT) {
|
||||
handleINSetCreativeSlotPacket(event);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleOUTMapPacket(PacketEvent event) {
|
||||
int id = event.getPacket().getIntegers().read(0); //Read first int (a); that's the MAP id
|
||||
|
||||
if (id < 0) {
|
||||
|
@ -64,9 +77,7 @@ public class PacketListener extends PacketAdapter {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPacketReceiving(PacketEvent event) {
|
||||
if (event.getPacketType() == PacketType.Play.Client.USE_ENTITY) {
|
||||
private void handleINUseEntityPacket(PacketEvent event) {
|
||||
int entityId = event.getPacket().getIntegers().read(0); //entityId
|
||||
WrappedEnumEntityUseAction action = event.getPacket().getEnumEntityUseActions().read(0);
|
||||
EnumWrappers.EntityUseAction actionEnum = null;
|
||||
|
@ -85,7 +96,9 @@ public class PacketListener extends PacketAdapter {
|
|||
Bukkit.getPluginManager().callEvent(interactEvent);
|
||||
if (interactEvent.isCancelled()) event.setCancelled(true);
|
||||
}
|
||||
} else if (event.getPacketType() == PacketType.Play.Client.SET_CREATIVE_SLOT) {
|
||||
}
|
||||
|
||||
private void handleINSetCreativeSlotPacket(PacketEvent event) {
|
||||
int slot = event.getPacket().getIntegers().read(0);
|
||||
ItemStack item = event.getPacket().getItemModifier().read(0);
|
||||
|
||||
|
@ -97,4 +110,3 @@ public class PacketListener extends PacketAdapter {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,7 +146,10 @@ public class ReflectionUtil {
|
|||
Class<?> playerConnection = getNMSClass("server.network", "PlayerConnection");
|
||||
|
||||
MethodHandles.Lookup lookup = MethodHandles.lookup();
|
||||
MethodHandle sendPacket = null, getHandle = null, getHandleWorld = null, connection = null;
|
||||
MethodHandle sendPacket = null;
|
||||
MethodHandle getHandle = null;
|
||||
MethodHandle getHandleWorld = null;
|
||||
MethodHandle connection = null;
|
||||
|
||||
try {
|
||||
connection = lookup.findGetter(entityPlayer,
|
||||
|
|
|
@ -40,12 +40,10 @@ public class YamlFile {
|
|||
this.plugin = plugin;
|
||||
this.name = name;
|
||||
|
||||
if (!plugin.getDataFolder().exists()) {
|
||||
if (!plugin.getDataFolder().mkdir()) {
|
||||
if (!plugin.getDataFolder().exists() && !plugin.getDataFolder().mkdir()) {
|
||||
plugin.getLogger().severe("Couldn't generate the pluginfolder!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.file = new File(plugin.getDataFolder(), name + ".yml");
|
||||
if (!this.file.exists()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue