Fix small issues

This commit is contained in:
Alexander Söderberg 2020-07-22 21:06:23 +02:00
parent 603d1ee9bb
commit c5e1b87c61
12 changed files with 129 additions and 111 deletions

View File

@ -89,7 +89,6 @@ import com.plotsquared.core.plot.PlotAreaType;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.plot.comment.CommentManager; import com.plotsquared.core.plot.comment.CommentManager;
import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag; import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag;
import com.plotsquared.core.plot.message.PlainChatManager;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.plot.world.SinglePlotArea; import com.plotsquared.core.plot.world.SinglePlotArea;
import com.plotsquared.core.plot.world.SinglePlotAreaManager; import com.plotsquared.core.plot.world.SinglePlotAreaManager;
@ -145,6 +144,7 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Queue; import java.util.Queue;
import java.util.Set; import java.util.Set;
@ -192,6 +192,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass;
@Inject @ImpromptuPipeline private UUIDPipeline impromptuPipeline; @Inject @ImpromptuPipeline private UUIDPipeline impromptuPipeline;
@Inject @BackgroundPipeline private UUIDPipeline backgroundPipeline; @Inject @BackgroundPipeline private UUIDPipeline backgroundPipeline;
@Inject private PlatformWorldManager<World> worldManager; @Inject private PlatformWorldManager<World> worldManager;
private Locale serverLocale;
@Override public int[] getServerVersion() { @Override public int[] getServerVersion() {
if (this.version == null) { if (this.version == null) {
@ -247,6 +248,8 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass;
new BukkitModule(this), new BackupModule()); new BukkitModule(this), new BackupModule());
this.injector.injectMembers(this); this.injector.injectMembers(this);
this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE);
if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) { if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) {
injector.getInstance(UpdateUtility.class).updateChecker(); injector.getInstance(UpdateUtility.class).updateChecker();
} }
@ -1135,7 +1138,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass;
return BukkitUtil.BUKKIT_AUDIENCES.audience(Bukkit.getConsoleSender()); return BukkitUtil.BUKKIT_AUDIENCES.audience(Bukkit.getConsoleSender());
} }
public String getPluginName() { @Override public String getPluginName() {
return this.pluginName; return this.pluginName;
} }
@ -1143,7 +1146,16 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass;
return this.singleWorldListener; return this.singleWorldListener;
} }
public Injector getInjector() { @Override public Injector getInjector() {
return this.injector; return this.injector;
} }
@Nonnull @Override public Locale getLocale() {
return this.serverLocale;
}
@Override public void setLocale(@Nonnull final Locale locale) {
throw new UnsupportedOperationException("Cannot replace server locale");
}
} }

View File

@ -27,24 +27,10 @@ package com.plotsquared.bukkit.util;
import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.item.ItemType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import java.util.function.Supplier;
public class BukkitBlockUtil { public class BukkitBlockUtil {
public static Supplier<ItemType> supplyItem(Block block) {
return new Supplier<ItemType>() {
@Override public ItemType get() {
return BukkitAdapter.asItemType(block.getType());
}
};
}
public static Supplier<ItemType> supplyItem(Material type) {
return () -> BukkitAdapter.asItemType(type);
}
public static BlockState get(Block block) { public static BlockState get(Block block) {
return get(block.getType()); return get(block.getType());
@ -53,4 +39,5 @@ public class BukkitBlockUtil {
public static BlockState get(Material material) { public static BlockState get(Material material) {
return BukkitAdapter.asBlockType(material).getDefaultState(); return BukkitAdapter.asBlockType(material).getDefaultState();
} }
} }

View File

@ -1,77 +0,0 @@
/*
* _____ _ _ _____ _
* | __ \| | | | / ____| | |
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
* | |
* |_|
* PlotSquared plot management system for Minecraft
* Copyright (C) 2020 IntellectualSites
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.plotsquared.bukkit.util;
import com.plotsquared.bukkit.chat.FancyMessage;
import com.plotsquared.bukkit.player.BukkitPlayer;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.player.ConsolePlayer;
import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.message.PlotMessage;
import org.bukkit.ChatColor;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class BukkitChatManager extends ChatManager<FancyMessage> {
@Override public FancyMessage builder() {
return new FancyMessage("");
}
@Override public void color(PlotMessage message, String color) {
message.$(this).color(ChatColor.getByChar(Captions.color(color).substring(1)));
}
@Override public void tooltip(PlotMessage message, PlotMessage... tooltips) {
List<FancyMessage> lines =
Arrays.stream(tooltips).map(tooltip -> tooltip.$(this)).collect(Collectors.toList());
message.$(this).formattedTooltip(lines);
}
@Override public void command(PlotMessage message, String command) {
message.$(this).command(command);
}
@Override public void text(PlotMessage message, String text) {
message.$(this).then(ChatColor.stripColor(text));
}
@Override public void send(PlotMessage plotMessage, PlotPlayer player) {
if (player instanceof ConsolePlayer || !Settings.Chat.INTERACTIVE) {
player.sendMessage(plotMessage.$(this).toOldMessageFormat());
} else {
plotMessage.$(this).send(((BukkitPlayer) player).player);
}
}
@Override public void suggest(PlotMessage plotMessage, String command) {
plotMessage.$(this).suggest(command);
}
}

View File

@ -26,7 +26,6 @@
package com.plotsquared.bukkit.util.task; package com.plotsquared.bukkit.util.task;
import com.plotsquared.core.util.task.PlotSquaredTask; import com.plotsquared.core.util.task.PlotSquaredTask;
import lombok.RequiredArgsConstructor;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -34,11 +33,14 @@ import javax.annotation.Nonnull;
/** /**
* Bukkit implementation of {@link PlotSquaredTask} * Bukkit implementation of {@link PlotSquaredTask}
*/ */
@RequiredArgsConstructor
public final class BukkitPlotSquaredTask extends BukkitRunnable implements PlotSquaredTask { public final class BukkitPlotSquaredTask extends BukkitRunnable implements PlotSquaredTask {
@Nonnull private final Runnable runnable; @Nonnull private final Runnable runnable;
public BukkitPlotSquaredTask(@Nonnull final Runnable runnable) {
this.runnable = runnable;
}
@Override public void runTask() { @Override public void runTask() {
this.runnable.run(); this.runnable.run();
} }

View File

@ -33,7 +33,6 @@ import com.plotsquared.core.util.task.PlotSquaredTask;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.util.task.TaskTime; import com.plotsquared.core.util.task.TaskTime;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
@ -88,7 +87,7 @@ import java.util.concurrent.TimeUnit;
return this.callMethodSync(function).get(timeout, TimeUnit.MILLISECONDS); return this.callMethodSync(function).get(timeout, TimeUnit.MILLISECONDS);
} }
@Override public <T> Future<T> callMethodSync(@NotNull final Callable<T> method) { @Override public <T> Future<T> callMethodSync(@Nonnull final Callable<T> method) {
return Bukkit.getScheduler().callSyncMethod(this.bukkitMain, method); return Bukkit.getScheduler().callSyncMethod(this.bukkitMain, method);
} }

View File

@ -26,8 +26,9 @@
package com.plotsquared.core; package com.plotsquared.core;
import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.Caption;
import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.caption.StaticCaption;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.ConsolePlayer;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
@ -36,7 +37,9 @@ import com.plotsquared.core.util.ChunkManager;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.SchematicHandler;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import net.kyori.adventure.text.minimessage.Template;
import javax.annotation.Nonnull;
import java.util.Collections; import java.util.Collections;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -142,10 +145,11 @@ import java.util.UUID;
/** /**
* Send a message to the console. The message supports color codes. * Send a message to the console. The message supports color codes.
* *
* @param message the message * @param message the message
* @see MainUtil#sendConsoleMessage(Captions, String...) * @param replacements Variable replacements
*/ */
public void sendConsoleMessage(String message) { public void sendConsoleMessage(@Nonnull final String message, final Template... replacements) {
ConsolePlayer.getConsole().sendMessage(StaticCaption.of(message), replacements);
// TODO: Re-implement // TODO: Re-implement
// PlotSquared.log(message); // PlotSquared.log(message);
} }
@ -153,12 +157,11 @@ import java.util.UUID;
/** /**
* Sends a message to the console. * Sends a message to the console.
* *
* @param caption the message * @param caption the message
* @see #sendConsoleMessage(String) * @param replacements Variable replacements
* @see Captions
*/ */
public void sendConsoleMessage(Caption caption) { public void sendConsoleMessage(@Nonnull final Caption caption, final Template... replacements) {
sendConsoleMessage(caption.getTranslated()); ConsolePlayer.getConsole().sendMessage(caption, replacements);
} }
/** /**

View File

@ -28,6 +28,7 @@ package com.plotsquared.core;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Key; import com.google.inject.Key;
import com.plotsquared.core.backup.BackupManager; import com.plotsquared.core.backup.BackupManager;
import com.plotsquared.core.configuration.caption.LocaleHolder;
import com.plotsquared.core.generator.GeneratorWrapper; import com.plotsquared.core.generator.GeneratorWrapper;
import com.plotsquared.core.generator.HybridUtils; import com.plotsquared.core.generator.HybridUtils;
import com.plotsquared.core.generator.IndependentPlotGenerator; import com.plotsquared.core.generator.IndependentPlotGenerator;
@ -55,7 +56,7 @@ import java.util.Map;
* *
* @param <P> Player type * @param <P> Player type
*/ */
public interface PlotPlatform<P> { public interface PlotPlatform<P> extends LocaleHolder {
/** /**
* Logs a message to console. * Logs a message to console.

View File

@ -63,6 +63,7 @@ import com.plotsquared.core.plot.world.SinglePlotAreaManager;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.FileUtils; import com.plotsquared.core.util.FileUtils;
import com.plotsquared.core.util.LegacyConverter; import com.plotsquared.core.util.LegacyConverter;
import com.plotsquared.core.util.MainUtil;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.ReflectionUtils; import com.plotsquared.core.util.ReflectionUtils;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
@ -166,6 +167,8 @@ public class PlotSquared {
this.platform = iPlotMain; this.platform = iPlotMain;
Settings.PLATFORM = platform; Settings.PLATFORM = platform;
MainUtil.initCache(); // TODO: REMOVE!!
// //
// Register configuration serializable classes // Register configuration serializable classes
// //

View File

@ -25,6 +25,7 @@
*/ */
package com.plotsquared.core.queue; package com.plotsquared.core.queue;
import com.plotsquared.core.util.MainUtil;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.PatternUtil; import com.plotsquared.core.util.PatternUtil;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;

View File

@ -0,0 +1,87 @@
/*
* _____ _ _ _____ _
* | __ \| | | | / ____| | |
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
* | |
* |_|
* PlotSquared plot management system for Minecraft
* Copyright (C) 2020 IntellectualSites
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.plotsquared.core.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* plot functions
* @deprecated Do not use
*/
@Deprecated public class MainUtil {
private static final Logger logger =
LoggerFactory.getLogger("P2/" + MainUtil.class.getSimpleName());
/**
* Cache of mapping x,y,z coordinates to the chunk array<br>
* - Used for efficient world generation<br>
*/
public static short[][] x_loc;
public static short[][] y_loc;
public static short[][] z_loc;
public static short[][][] CACHE_I = null;
public static short[][][] CACHE_J = null;
/**
* This cache is used for world generation and just saves a bit of calculation time when checking if something is in the plot area.
*/
public static void initCache() {
if (x_loc == null) {
x_loc = new short[16][4096];
y_loc = new short[16][4096];
z_loc = new short[16][4096];
for (int i = 0; i < 16; i++) {
int i4 = i << 4;
for (int j = 0; j < 4096; j++) {
int y = i4 + (j >> 8);
int a = j - ((y & 0xF) << 8);
int z1 = a >> 4;
int x1 = a - (z1 << 4);
x_loc[i][j] = (short) x1;
y_loc[i][j] = (short) y;
z_loc[i][j] = (short) z1;
}
}
}
if (CACHE_I == null) {
CACHE_I = new short[256][16][16];
CACHE_J = new short[256][16][16];
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
for (int y = 0; y < 256; y++) {
short i = (short) (y >> 4);
short j = (short) ((y & 0xF) << 8 | z << 4 | x);
CACHE_I[y][x][z] = i;
CACHE_J[y][x][z] = j;
}
}
}
}
}
}

View File

@ -25,6 +25,7 @@
*/ */
package com.plotsquared.core.util; package com.plotsquared.core.util;
import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.Caption;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -78,7 +79,7 @@ public class StringMan {
return (String) obj; return (String) obj;
} }
if (obj instanceof Caption) { if (obj instanceof Caption) {
return ((Caption) obj).getTranslated(); return ((Caption) obj).getComponent(PlotSquared.platform());
} }
if (obj.getClass().isArray()) { if (obj.getClass().isArray()) {
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();

View File

@ -25,7 +25,6 @@
*/ */
package com.plotsquared.core.util.task; package com.plotsquared.core.util.task;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collection; import java.util.Collection;
@ -237,7 +236,7 @@ public abstract class TaskManager {
* @param <T> Return type * @param <T> Return type
* @return Future completing with the result * @return Future completing with the result
*/ */
public abstract <T> Future<T> callMethodSync(@Nonnegative final Callable<T> method); public abstract <T> Future<T> callMethodSync(@Nonnull final Callable<T> method);
/** /**
* Run a repeating synchronous task. If using a platform scheduler, * Run a repeating synchronous task. If using a platform scheduler,