Additional async checks
This commit is contained in:
parent
80344c8503
commit
017b0a2346
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (C) filoghost and contributors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.core;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
|
||||
public class CorePreconditions {
|
||||
|
||||
public static void checkMainThread() {
|
||||
Preconditions.checkMainThread("async operation is not supported");
|
||||
}
|
||||
|
||||
}
|
|
@ -9,6 +9,7 @@ import me.filoghost.fcommons.Preconditions;
|
|||
import me.filoghost.holographicdisplays.api.Position;
|
||||
import me.filoghost.holographicdisplays.api.hologram.Hologram;
|
||||
import me.filoghost.holographicdisplays.api.hologram.PlaceholderSetting;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.core.base.BaseHologram;
|
||||
import me.filoghost.holographicdisplays.core.base.ImmutablePosition;
|
||||
import me.filoghost.holographicdisplays.core.tracking.LineTrackerManager;
|
||||
|
@ -53,6 +54,7 @@ class APIHologram extends BaseHologram implements Hologram {
|
|||
|
||||
@Override
|
||||
public void setPlaceholderSetting(@NotNull PlaceholderSetting placeholderSetting) {
|
||||
CorePreconditions.checkMainThread();
|
||||
Preconditions.notNull(placeholderSetting, "placeholderSetting");
|
||||
checkNotDeleted();
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ package me.filoghost.holographicdisplays.core.api.current;
|
|||
import me.filoghost.holographicdisplays.api.hologram.line.HologramLineClickListener;
|
||||
import me.filoghost.holographicdisplays.api.hologram.line.HologramLinePickupListener;
|
||||
import me.filoghost.holographicdisplays.api.hologram.line.ItemHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.core.base.BaseItemHologramLine;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -24,21 +25,18 @@ class APIItemHologramLine extends BaseItemHologramLine implements ItemHologramLi
|
|||
|
||||
@Override
|
||||
public @Nullable HologramLinePickupListener getPickupListener() {
|
||||
CorePreconditions.checkMainThread();
|
||||
return pickupListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPickupListener(@Nullable HologramLinePickupListener pickupListener) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
this.pickupListener = pickupListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable HologramLineClickListener getClickListener() {
|
||||
return clickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPickupCallback() {
|
||||
return pickupListener != null;
|
||||
|
@ -51,8 +49,15 @@ class APIItemHologramLine extends BaseItemHologramLine implements ItemHologramLi
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable HologramLineClickListener getClickListener() {
|
||||
CorePreconditions.checkMainThread();
|
||||
return clickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setClickListener(@Nullable HologramLineClickListener clickListener) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
this.clickListener = clickListener;
|
||||
|
|
|
@ -8,6 +8,7 @@ package me.filoghost.holographicdisplays.core.api.current;
|
|||
import me.filoghost.holographicdisplays.api.hologram.PlaceholderSetting;
|
||||
import me.filoghost.holographicdisplays.api.hologram.line.HologramLineClickListener;
|
||||
import me.filoghost.holographicdisplays.api.hologram.line.TextHologramLine;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.core.base.BaseTextHologramLine;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -30,6 +31,7 @@ class APITextHologramLine extends BaseTextHologramLine implements TextHologramLi
|
|||
|
||||
@Override
|
||||
public void setClickListener(@Nullable HologramLineClickListener clickListener) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
this.clickListener = clickListener;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
package me.filoghost.holographicdisplays.core.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.core.api.current.DefaultVisibilitySettings;
|
||||
import me.filoghost.holographicdisplays.core.tracking.LineTrackerManager;
|
||||
import org.bukkit.Chunk;
|
||||
|
@ -70,6 +71,7 @@ public abstract class BaseHologram extends BaseHologramComponent {
|
|||
}
|
||||
|
||||
public void setPosition(@NotNull ImmutablePosition position) {
|
||||
CorePreconditions.checkMainThread();
|
||||
Preconditions.notNull(position, "position");
|
||||
checkNotDeleted();
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ package me.filoghost.holographicdisplays.core.base;
|
|||
|
||||
import me.filoghost.holographicdisplays.api.Position;
|
||||
import me.filoghost.holographicdisplays.core.CoreGlobalConfig;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -28,18 +29,22 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
|
||||
@Override
|
||||
public Iterator<T> iterator() {
|
||||
CorePreconditions.checkMainThread();
|
||||
return unmodifiableLinesView.iterator();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
CorePreconditions.checkMainThread();
|
||||
return lines.size();
|
||||
}
|
||||
|
||||
public @NotNull T get(int index) {
|
||||
CorePreconditions.checkMainThread();
|
||||
return lines.get(index);
|
||||
}
|
||||
|
||||
public void add(T line) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
lines.add(line);
|
||||
|
@ -47,6 +52,7 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
}
|
||||
|
||||
public void insert(int beforeIndex, T line) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
lines.add(beforeIndex, line);
|
||||
|
@ -54,6 +60,7 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
}
|
||||
|
||||
public void remove(int index) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
lines.remove(index).setDeleted();
|
||||
|
@ -61,6 +68,7 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
}
|
||||
|
||||
public boolean remove(T line) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
boolean removed = lines.remove(line);
|
||||
|
@ -72,6 +80,7 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
}
|
||||
|
||||
public void clear() {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
Iterator<T> iterator = lines.iterator();
|
||||
|
@ -105,6 +114,8 @@ public class BaseHologramLines<T extends EditableHologramLine> implements Iterab
|
|||
}
|
||||
|
||||
public double getHeight() {
|
||||
CorePreconditions.checkMainThread();
|
||||
|
||||
if (lines.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
package me.filoghost.holographicdisplays.core.base;
|
||||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
|
||||
|
@ -21,7 +21,7 @@ public abstract class BaseHologramManager<H extends BaseHologram> {
|
|||
private final List<H> unmodifiableHologramsView = Collections.unmodifiableList(holograms);
|
||||
|
||||
protected void addHologram(H hologram) {
|
||||
Preconditions.checkMainThread("async hologram create");
|
||||
CorePreconditions.checkMainThread();
|
||||
|
||||
holograms.add(hologram);
|
||||
}
|
||||
|
@ -31,14 +31,14 @@ public abstract class BaseHologramManager<H extends BaseHologram> {
|
|||
}
|
||||
|
||||
public void deleteHologram(H hologram) {
|
||||
Preconditions.checkMainThread("async hologram delete");
|
||||
CorePreconditions.checkMainThread();
|
||||
|
||||
hologram.setDeleted();
|
||||
holograms.remove(hologram);
|
||||
}
|
||||
|
||||
public void deleteHologramsIf(Predicate<H> condition) {
|
||||
Preconditions.checkMainThread("async hologram delete");
|
||||
CorePreconditions.checkMainThread();
|
||||
|
||||
Iterator<H> iterator = holograms.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
|
@ -51,7 +51,7 @@ public abstract class BaseHologramManager<H extends BaseHologram> {
|
|||
}
|
||||
|
||||
public void deleteHolograms() {
|
||||
Preconditions.checkMainThread("async hologram delete");
|
||||
CorePreconditions.checkMainThread();
|
||||
|
||||
Iterator<H> iterator = holograms.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
|
|
|
@ -7,6 +7,7 @@ package me.filoghost.holographicdisplays.core.base;
|
|||
|
||||
import me.filoghost.fcommons.Preconditions;
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.nms.common.entity.ItemNMSPacketEntity;
|
||||
import me.filoghost.holographicdisplays.core.tracking.ItemLineTracker;
|
||||
import me.filoghost.holographicdisplays.core.tracking.LineTrackerManager;
|
||||
|
@ -48,6 +49,7 @@ public abstract class BaseItemHologramLine extends BaseClickableHologramLine {
|
|||
}
|
||||
|
||||
public void setItemStack(@Nullable ItemStack itemStack) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
if (itemStack != null) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
package me.filoghost.holographicdisplays.core.base;
|
||||
|
||||
import me.filoghost.holographicdisplays.core.CorePreconditions;
|
||||
import me.filoghost.holographicdisplays.nms.common.entity.TextNMSPacketEntity;
|
||||
import me.filoghost.holographicdisplays.core.tracking.LineTrackerManager;
|
||||
import me.filoghost.holographicdisplays.core.tracking.TextLineTracker;
|
||||
|
@ -31,6 +32,7 @@ public abstract class BaseTextHologramLine extends BaseClickableHologramLine {
|
|||
}
|
||||
|
||||
public void setText(@Nullable String text) {
|
||||
CorePreconditions.checkMainThread();
|
||||
checkNotDeleted();
|
||||
|
||||
this.text = text;
|
||||
|
|
Loading…
Reference in New Issue