1
mirror of https://github.com/CarmJos/EasyPlugin.git synced 2026-06-05 00:58:17 +08:00

Compare commits

..

3 Commits

15 changed files with 57 additions and 35 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -38,7 +38,9 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
public abstract void noArgs(CommandSender sender);
public abstract void unknownCommand(CommandSender sender, String[] args);
public void unknownCommand(CommandSender sender, String[] args) {
noArgs(sender);
}
public abstract void noPermission(CommandSender sender);
@@ -1,15 +1,18 @@
package cc.carm.lib.easyplugin.command;
import com.google.common.collect.ImmutableList;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.HumanEntity;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -17,14 +20,22 @@ import java.util.stream.Stream;
public class SimpleCompleter {
public static @NotNull List<String> objects(@NotNull String input, List<?> objects) {
public static @NotNull List<String> none() {
return ImmutableList.of();
}
public static @NotNull List<String> objects(@NotNull String input, Collection<?> objects) {
return objects(input, objects.size(), objects);
}
public static @NotNull List<String> objects(@NotNull String input, int limit, List<?> objects) {
public static @NotNull List<String> objects(@NotNull String input, int limit, Collection<?> objects) {
return objects(input, limit, objects.stream());
}
public static @NotNull List<String> objects(@NotNull String input, Stream<?> stream) {
return objects(input, 20, stream);
}
public static @NotNull List<String> objects(@NotNull String input, int limit, Stream<?> stream) {
return stream.filter(Objects::nonNull).map(Object::toString)
.filter(s -> StringUtil.startsWithIgnoreCase(s, input))
@@ -39,11 +50,11 @@ public class SimpleCompleter {
return text(input, limit, Arrays.asList(texts));
}
public static @NotNull List<String> text(@NotNull String input, List<String> texts) {
public static @NotNull List<String> text(@NotNull String input, Collection<String> texts) {
return text(input, texts.size(), texts);
}
public static @NotNull List<String> text(@NotNull String input, int limit, List<String> texts) {
public static @NotNull List<String> text(@NotNull String input, int limit, Collection<String> texts) {
return objects(input, limit, texts);
}
@@ -87,4 +98,13 @@ public class SimpleCompleter {
return objects(input, limit, Arrays.stream(PotionEffectType.values()).map(PotionEffectType::getName));
}
public static @NotNull List<String> enchantments(@NotNull String input) {
return effects(input, 10);
}
@SuppressWarnings("deprecation")
public static @NotNull List<String> enchantments(@NotNull String input, int limit) {
return objects(input, limit, Arrays.stream(Enchantment.values()).map(Enchantment::getName));
}
}
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -16,6 +16,7 @@ import java.util.stream.Collectors;
public class GUIItemConfiguration {
@NotNull Material type;
int amount;
int data;
@Nullable String name;
@NotNull List<String> lore;
@@ -23,11 +24,12 @@ public class GUIItemConfiguration {
@NotNull List<Integer> slots;
@NotNull List<GUIActionConfiguration> actions;
public GUIItemConfiguration(@NotNull Material type, int data,
public GUIItemConfiguration(@NotNull Material type, int amount, int data,
@Nullable String name, @NotNull List<String> lore,
@NotNull List<GUIActionConfiguration> actions,
@NotNull List<Integer> slots) {
this.type = type;
this.amount = amount;
this.data = data;
this.name = name;
this.lore = lore;
@@ -36,8 +38,7 @@ public class GUIItemConfiguration {
}
public void setupItems(Player player, GUI gui) {
ItemStackFactory icon = new ItemStackFactory(this.type);
icon.setDurability(this.data);
ItemStackFactory icon = new ItemStackFactory(this.type, this.amount, this.data);
if (this.name != null) icon.setDisplayName(this.name);
icon.setLore(MessageUtils.setPlaceholders(player, this.lore));
@@ -51,6 +52,7 @@ public class GUIItemConfiguration {
map.put("type", this.type.name());
if (this.name != null) map.put("name", this.name);
if (this.amount != 1) map.put("amount", this.amount);
if (this.data != 0) map.put("data", this.data);
if (!this.lore.isEmpty()) map.put("lore", this.lore);
if (this.slots.size() > 1) {
@@ -70,6 +72,7 @@ public class GUIItemConfiguration {
String material = Optional.ofNullable(itemSection.getString("type")).orElse("STONE");
Material type = Optional.ofNullable(Material.matchMaterial(material)).orElse(Material.STONE);
int data = itemSection.getInt("data", 0);
int amount = itemSection.getInt("amount", 1);
String name = itemSection.getString("name");
List<String> lore = itemSection.getStringList("lore");
@@ -85,10 +88,9 @@ public class GUIItemConfiguration {
}
return new GUIItemConfiguration(
type, data, name, lore, actions,
type, amount, data, name, lore, actions,
slots.size() > 0 ? slots : Collections.singletonList(slot)
);
}
}
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -45,8 +45,8 @@ public abstract class EasyPlugin extends JavaPlugin {
this.messageProvider = messageProvider;
}
private SchedulerUtils scheduler;
private boolean initialized = false;
protected SchedulerUtils scheduler;
protected boolean initialized = false;
@Override
public final void onLoad() {
@@ -79,7 +79,7 @@ public abstract class EasyPlugin extends JavaPlugin {
@Override
public final void onDisable() {
if (!hasOverride("shutdown") || !isInitialized()) return;
if (!hasOverride("shutdown") || !this.initialized) return;
outputInfo();
log(messageProvider.disabling(this));
@@ -103,10 +103,6 @@ public abstract class EasyPlugin extends JavaPlugin {
Optional.ofNullable(JarResourceUtils.readResource(this.getResource("PLUGIN_INFO"))).ifPresent(this::log);
}
public boolean isInitialized() {
return initialized;
}
public boolean isDebugging() {
return false;
}
@@ -149,15 +145,16 @@ public abstract class EasyPlugin extends JavaPlugin {
if (isDebugging()) print("&8[DEBUG] &r", messages);
}
public void callEventSync(Event event) {
getScheduler().run(() -> Bukkit.getPluginManager().callEvent(event));
public @NotNull <T extends Event> CompletableFuture<T> callSync(T event) {
CompletableFuture<T> future = new CompletableFuture<>();
getScheduler().run(() -> {
Bukkit.getPluginManager().callEvent(event);
future.complete(event);
});
return future;
}
public void callEventAsync(Event event) {
getScheduler().runAsync(() -> Bukkit.getPluginManager().callEvent(event));
}
public @NotNull <T extends Event> CompletableFuture<T> callEventFuture(T event) {
public @NotNull <T extends Event> CompletableFuture<T> callAsync(T event) {
return CompletableFuture.supplyAsync(() -> {
Bukkit.getPluginManager().callEvent(event);
return event;
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+2 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.8</version>
<version>1.4.10</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -24,6 +24,7 @@
<dependencies>
<!--suppress VulnerableLibrariesLocal -->
<dependency>
<groupId>com.github.MilkBowl</groupId>
<artifactId>VaultAPI</artifactId>
+1 -1
View File
@@ -15,7 +15,7 @@
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<packaging>pom</packaging>
<version>1.4.8</version>
<version>1.4.10</version>
<modules>
<module>base/main</module>