mirror of
https://github.com/CarmJos/EasyPlugin.git
synced 2026-06-05 00:58:17 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b5382a1cb3 | |||
| 77c035c2cb | |||
| fbf118436e |
@@ -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
@@ -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>
|
||||
|
||||
+7
-5
@@ -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
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user