1.0.0.4 HOTFIX
New cmd library, update nbt library, new feature - allnodrop
This commit is contained in:
1 parent
61873f6dd7
commit
c307386645
18 files changed
+265
-65
No files matched your search
+9
-5
@@ -5,7 +5,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = 'me.redtea'
|
group = 'me.redtea'
|
||||||
version = '1.0.3c-SNAPSHOT'
|
version = '1.0.4-HOTFIX'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
@@ -17,6 +17,10 @@ repositories {
|
|||||||
name = "sonatype"
|
name = "sonatype"
|
||||||
url = "https://oss.sonatype.org/content/groups/public/"
|
url = "https://oss.sonatype.org/content/groups/public/"
|
||||||
}
|
}
|
||||||
|
maven {
|
||||||
|
name = "sonatype"
|
||||||
|
url = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
||||||
|
}
|
||||||
maven {
|
maven {
|
||||||
name = "CodeMC"
|
name = "CodeMC"
|
||||||
url = uri("https://repo.codemc.io/repository/maven-public/")
|
url = uri("https://repo.codemc.io/repository/maven-public/")
|
||||||
@@ -35,8 +39,9 @@ dependencies {
|
|||||||
compileOnly "org.projectlombok:lombok:1.18.26"
|
compileOnly "org.projectlombok:lombok:1.18.26"
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.26'
|
annotationProcessor 'org.projectlombok:lombok:1.18.26'
|
||||||
compileOnly "com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT"
|
compileOnly "com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT"
|
||||||
implementation "me.mattstudios.utils:matt-framework:1.4"
|
// implementation "me.mattstudios.utils:matt-framework:1.4"
|
||||||
implementation "de.tr7zw:item-nbt-api:2.11.3"
|
implementation("tech.carcadex:kotlinbukkitkit-commands:1.0.0.4-SNAPSHOT")
|
||||||
|
implementation "de.tr7zw:item-nbt-api:2.12.3"
|
||||||
implementation "net.kyori:adventure-api:4.14.0"
|
implementation "net.kyori:adventure-api:4.14.0"
|
||||||
implementation "net.kyori:adventure-platform-bukkit:4.3.0"
|
implementation "net.kyori:adventure-platform-bukkit:4.3.0"
|
||||||
implementation files("libs/MiniMessages.jar")
|
implementation files("libs/MiniMessages.jar")
|
||||||
@@ -74,7 +79,6 @@ processResources {
|
|||||||
shadowJar {
|
shadowJar {
|
||||||
relocate 'de.tr7zw.changeme.nbtapi', 'me.redtea.nodropx.libs.tr7zw.nbt'
|
relocate 'de.tr7zw.changeme.nbtapi', 'me.redtea.nodropx.libs.tr7zw.nbt'
|
||||||
relocate 'de.tr7zw.annotations', 'me.redtea.nodropx.libs.tr7zw.annotations'
|
relocate 'de.tr7zw.annotations', 'me.redtea.nodropx.libs.tr7zw.annotations'
|
||||||
relocate 'me.mattstudios.mf', 'me.redtea.nodropx.libs.commands'
|
|
||||||
relocate 'dev.triumphteam', 'me.redtea.nodropx.libs.gui'
|
relocate 'dev.triumphteam', 'me.redtea.nodropx.libs.gui'
|
||||||
relocate 'org.checkerframework', 'me.redtea.nodropx.libs.message.oskarsmc.libs.checker'
|
relocate 'org.checkerframework', 'me.redtea.nodropx.libs.message.oskarsmc.libs.checker'
|
||||||
relocate 'org.intellij', 'me.redtea.nodropx.libs.intellij'
|
relocate 'org.intellij', 'me.redtea.nodropx.libs.intellij'
|
||||||
@@ -83,6 +87,6 @@ shadowJar {
|
|||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
runServer {
|
runServer {
|
||||||
minecraftVersion("1.16.5")
|
minecraftVersion("1.12.2")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
package me.redtea.nodropx;
|
package me.redtea.nodropx;
|
||||||
|
|
||||||
|
import kotlin.Unit;
|
||||||
|
import kotlin.jvm.functions.Function1;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import me.mattstudios.mf.base.CommandManager;
|
|
||||||
import me.redtea.nodropx.api.facade.NoDropAPI;
|
import me.redtea.nodropx.api.facade.NoDropAPI;
|
||||||
import me.redtea.nodropx.api.facade.impl.NoDropXFacade;
|
import me.redtea.nodropx.api.facade.impl.NoDropXFacade;
|
||||||
import me.redtea.nodropx.command.NoDropCommand;
|
import me.redtea.nodropx.command.NoDropCommand;
|
||||||
@@ -32,6 +33,8 @@ import me.redtea.nodropx.model.cosmetic.impl.DisplayNameCosmetic;
|
|||||||
import me.redtea.nodropx.model.materialprovider.impl.ItemStackProviderDefault;
|
import me.redtea.nodropx.model.materialprovider.impl.ItemStackProviderDefault;
|
||||||
import me.redtea.nodropx.model.materialprovider.impl.ItemsAdderProvider;
|
import me.redtea.nodropx.model.materialprovider.impl.ItemsAdderProvider;
|
||||||
import me.redtea.nodropx.schema.ItemStackListSchema;
|
import me.redtea.nodropx.schema.ItemStackListSchema;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.AllNoDropService;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.impl.AllNoDropServiceImpl;
|
||||||
import me.redtea.nodropx.service.capasity.CapacityService;
|
import me.redtea.nodropx.service.capasity.CapacityService;
|
||||||
import me.redtea.nodropx.service.capasity.impl.CapacityServiceImpl;
|
import me.redtea.nodropx.service.capasity.impl.CapacityServiceImpl;
|
||||||
import me.redtea.nodropx.service.cosmetic.CosmeticService;
|
import me.redtea.nodropx.service.cosmetic.CosmeticService;
|
||||||
@@ -56,13 +59,16 @@ import me.redtea.nodropx.util.FoliaSupportedUtils;
|
|||||||
import me.redtea.nodropx.util.UpdateChecker;
|
import me.redtea.nodropx.util.UpdateChecker;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.plugin.ServicePriority;
|
import org.bukkit.plugin.ServicePriority;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import tech.carcadex.kotlinbukkitkit.commands.manager.CommandManager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public final class NoDropX extends JavaPlugin {
|
public final class NoDropX extends JavaPlugin {
|
||||||
@@ -111,7 +117,8 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
NoDropItemFactory noDropItemFactory = new NoDropItemFactoryImpl(noDropService);
|
NoDropItemFactory noDropItemFactory = new NoDropItemFactoryImpl(noDropService);
|
||||||
EventService eventService = new EventServiceImpl(noDropService);
|
EventService eventService = new EventServiceImpl(noDropService);
|
||||||
capacityService = new CapacityServiceImpl(this);
|
capacityService = new CapacityServiceImpl(this);
|
||||||
RespawnService respawnService = new RespawnServiceImpl(noDropService, capacityService);
|
AllNoDropService allNoDropService = new AllNoDropServiceImpl(nbtService);
|
||||||
|
RespawnService respawnService = new RespawnServiceImpl(noDropService, allNoDropService, capacityService);
|
||||||
|
|
||||||
//EXPERIMENTAL! Folia support!
|
//EXPERIMENTAL! Folia support!
|
||||||
FoliaSupporter foliaSupporter = new FoliaSupporter();
|
FoliaSupporter foliaSupporter = new FoliaSupporter();
|
||||||
@@ -129,7 +136,9 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
StorageService storageService = new StorageServiceImpl(menuFacade, personalStorageRepo, noDropService);
|
StorageService storageService = new StorageServiceImpl(menuFacade, personalStorageRepo, noDropService);
|
||||||
|
|
||||||
|
|
||||||
NoDropAPI noDropAPI = new NoDropXFacade(noDropService, noDropItemFactory, storageService, capacityService, itemStackService);
|
|
||||||
|
NoDropAPI noDropAPI = new NoDropXFacade(noDropService, noDropItemFactory, storageService, capacityService,
|
||||||
|
itemStackService, allNoDropService);
|
||||||
noDropAPIInstance = noDropAPI;
|
noDropAPIInstance = noDropAPI;
|
||||||
|
|
||||||
|
|
||||||
@@ -140,13 +149,26 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
Bukkit.getServicesManager().register(NoDropAPI.class,
|
Bukkit.getServicesManager().register(NoDropAPI.class,
|
||||||
noDropAPI, this, ServicePriority.Normal);
|
noDropAPI, this, ServicePriority.Normal);
|
||||||
|
|
||||||
CommandManager commandManager = new CommandManager(this);
|
CommandManager commandManager = CommandManager.get(this);
|
||||||
commandManager.getMessageHandler().register("cmd.no.permission", sender -> messages.get("noPerms").send(sender));
|
commandManager.message("#no-perm", sender -> {
|
||||||
commandManager.getMessageHandler().register("cmd.no.console", sender -> messages.get("noConsole").send(sender));
|
messages.get("noPerms").send(sender);
|
||||||
commandManager.getMessageHandler().register("cmd.no.exists", sender -> messages.get("noExists").send(sender));
|
return Unit.INSTANCE;
|
||||||
commandManager.getMessageHandler().register("cmd.wrong.usage", sender -> messages.get("usage").send(sender));
|
});
|
||||||
commandManager.getCompletionHandler().register("#materials", input -> itemStackService.allMaterials());
|
commandManager.message("#for-players-only", sender -> {
|
||||||
commandManager.register(new NoDropCommand(messages, noDropAPI, menuFacade, this, itemStackService, dropConfirmService));
|
messages.get("noConsole").send(sender);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
commandManager.message("#no-such-player", sender -> {
|
||||||
|
messages.get("noExists").send(sender);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
commandManager.message("#no-such-player", sender -> {
|
||||||
|
messages.get("usage").send(sender);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
commandManager.tabComplete("#materials", input -> itemStackService.allMaterials());
|
||||||
|
commandManager.register(new NoDropCommand(messages, noDropAPI, menuFacade, this,
|
||||||
|
itemStackService, dropConfirmService, eventService, allNoDropService));
|
||||||
bStatsInit();
|
bStatsInit();
|
||||||
printCredits();
|
printCredits();
|
||||||
checkUpdates();
|
checkUpdates();
|
||||||
@@ -154,7 +176,7 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
|
|
||||||
private MenuFacade initMenus() {
|
private MenuFacade initMenus() {
|
||||||
CachedMenu personalStorageCachedMenu;
|
CachedMenu personalStorageCachedMenu;
|
||||||
if (getConfig().getString("personalStorageType").equalsIgnoreCase("SINGLE_PAGE")) {
|
if (Objects.requireNonNull(getConfig().getString("personalStorageType")).equalsIgnoreCase("SINGLE_PAGE")) {
|
||||||
SinglePageGui singlePageGui = new SinglePageGui(messages, personalStorageRepo);
|
SinglePageGui singlePageGui = new SinglePageGui(messages, personalStorageRepo);
|
||||||
personalStorageCachedMenu = singlePageGui;
|
personalStorageCachedMenu = singlePageGui;
|
||||||
Bukkit.getPluginManager().registerEvents(new SinglePageGuiHandler(new SinglePageController(noDropService,
|
Bukkit.getPluginManager().registerEvents(new SinglePageGuiHandler(new SinglePageController(noDropService,
|
||||||
@@ -183,10 +205,10 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
new UpdateChecker(this, 111485, foliaSupportedUtils).getVersion(version -> {
|
new UpdateChecker(this, 111485, foliaSupportedUtils).getVersion(version -> {
|
||||||
if (this.getDescription().getVersion().equals(version)) {
|
if (this.getDescription().getVersion().equals(version)) {
|
||||||
getLogger().info("There is not a new update available.");
|
getLogger().info(ChatColor.GREEN + "There is not a new update available.");
|
||||||
} else {
|
} else {
|
||||||
getLogger().info("There is a new update available: " + version);
|
getLogger().info(ChatColor.YELLOW + "There is a new update available: " + ChatColor.GOLD + version);
|
||||||
getLogger().info("Download it from https://www.spigotmc.org/resources/nodropx.111485/");
|
getLogger().info(ChatColor.YELLOW + "Download it from " + ChatColor.GOLD + "https://www.spigotmc.org/resources/nodropx.111485/");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -200,7 +222,7 @@ public final class NoDropX extends JavaPlugin {
|
|||||||
|
|
||||||
private void printCredits() {
|
private void printCredits() {
|
||||||
printCreditLine("&a************************************************************");
|
printCreditLine("&a************************************************************");
|
||||||
printCreditLine("&a* &eNoDropX version &6" + getDescription().getVersion() + "&7 (uses CarcadeX v. 1.0.7)");
|
printCreditLine("&a* &2&lNoDrop&a&lX&e version &6" + getDescription().getVersion() + "&7 (uses KotlinBukkitKIT v. 1.0.4)");
|
||||||
printCreditLine("&a* &eBy &citzRedTea");
|
printCreditLine("&a* &eBy &citzRedTea");
|
||||||
printCreditLine("&a* &eDetected bukkit version &6" + Bukkit.getBukkitVersion());
|
printCreditLine("&a* &eDetected bukkit version &6" + Bukkit.getBukkitVersion());
|
||||||
printCreditLine("&a* &esupport HEX colors " + (supportHEX ? "&2YES" : "&4NO"));
|
printCreditLine("&a* &esupport HEX colors " + (supportHEX ? "&2YES" : "&4NO"));
|
||||||
|
|||||||
+6
-3
@@ -11,10 +11,10 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
/**
|
/**
|
||||||
* This event is called when item changes no drop status
|
* This event is called when item changes no drop status
|
||||||
*/
|
*/
|
||||||
public class ChangeNoDropEvent extends PlayerEvent implements Cancellable {
|
public class PlayerChangeNoDropEvent extends PlayerEvent implements Cancellable {
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
@Getter
|
|
||||||
private final boolean newValue;
|
private final boolean newValue;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -23,7 +23,7 @@ public class ChangeNoDropEvent extends PlayerEvent implements Cancellable {
|
|||||||
|
|
||||||
private boolean isCancelled;
|
private boolean isCancelled;
|
||||||
|
|
||||||
public ChangeNoDropEvent(@NotNull Player who, boolean newValue, @NotNull ItemStack item) {
|
public PlayerChangeNoDropEvent(@NotNull Player who, boolean newValue, @NotNull ItemStack item) {
|
||||||
super(who);
|
super(who);
|
||||||
this.newValue = newValue;
|
this.newValue = newValue;
|
||||||
this.item = item;
|
this.item = item;
|
||||||
@@ -48,4 +48,7 @@ public class ChangeNoDropEvent extends PlayerEvent implements Cancellable {
|
|||||||
return handlers;
|
return handlers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getNewValue() {
|
||||||
|
return newValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -144,4 +144,55 @@ public interface NoDropAPI {
|
|||||||
default @NotNull ItemStack getNoDrop(@NotNull String material) {
|
default @NotNull ItemStack getNoDrop(@NotNull String material) {
|
||||||
return getNoDrop(material, 1);
|
return getNoDrop(material, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set AllNoDrop
|
||||||
|
* @param item the item who's AllNoDrop property are changing
|
||||||
|
* @param isAllNoDrop will the item save all items in player's inventory from death?
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
ItemStack setAllNoDrop(@NotNull ItemStack item, boolean isAllNoDrop);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if item is AllNoDrop
|
||||||
|
* @param item the item being checked
|
||||||
|
* @return true if the item save all items in player's inventory from death
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
boolean isAllNoDrop(@NotNull ItemStack item);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate new nodropall item by material and amount
|
||||||
|
* @param material material of item
|
||||||
|
* @param amount count of item
|
||||||
|
* @return nodropall item
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
default ItemStack getAllNoDrop(@NotNull Material material, int amount) {
|
||||||
|
val item = new ItemStack(material, amount);
|
||||||
|
setAllNoDrop(item, true);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate new nodropall item by material and amount
|
||||||
|
* @param material material of item
|
||||||
|
* @param amount count of item
|
||||||
|
* @return nodropall item
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see NoDropAPI#getAllNoDrop(Material, int)
|
||||||
|
*/
|
||||||
|
ItemStack getAllNoDrop(@NotNull String material, int amount);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see NoDropAPI#getAllNoDrop(Material, int)
|
||||||
|
*/
|
||||||
|
void giveAllNoDrop(HumanEntity entity, @NotNull String material, int amount);
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@ import me.redtea.nodropx.api.facade.manipulator.StorageManipulator;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import me.redtea.nodropx.factory.item.NoDropItemFactory;
|
import me.redtea.nodropx.factory.item.NoDropItemFactory;
|
||||||
import me.redtea.nodropx.libs.carcadex.repo.Repo;
|
import me.redtea.nodropx.libs.carcadex.repo.Repo;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.AllNoDropService;
|
||||||
import me.redtea.nodropx.service.capasity.CapacityService;
|
import me.redtea.nodropx.service.capasity.CapacityService;
|
||||||
import me.redtea.nodropx.service.material.ItemStackService;
|
import me.redtea.nodropx.service.material.ItemStackService;
|
||||||
import me.redtea.nodropx.service.nodrop.NoDropService;
|
import me.redtea.nodropx.service.nodrop.NoDropService;
|
||||||
@@ -27,6 +28,7 @@ public class NoDropXFacade implements NoDropAPI {
|
|||||||
private final StorageService storageService;
|
private final StorageService storageService;
|
||||||
private final CapacityService capacityService;
|
private final CapacityService capacityService;
|
||||||
private final ItemStackService itemStackService;
|
private final ItemStackService itemStackService;
|
||||||
|
private final AllNoDropService allNoDropService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack setNoDrop(@NotNull ItemStack item, boolean isNoDrop) {
|
public ItemStack setNoDrop(@NotNull ItemStack item, boolean isNoDrop) {
|
||||||
@@ -99,4 +101,25 @@ public class NoDropXFacade implements NoDropAPI {
|
|||||||
public @NotNull ItemStack getNoDrop(@NotNull String material, int amount) {
|
public @NotNull ItemStack getNoDrop(@NotNull String material, int amount) {
|
||||||
return setNoDrop(itemStackService.get(material, amount), true);
|
return setNoDrop(itemStackService.get(material, amount), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack setAllNoDrop(@NotNull ItemStack item, boolean isAllNoDrop) {
|
||||||
|
allNoDropService.setAllNoDrop(item, isAllNoDrop);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllNoDrop(@NotNull ItemStack item) {
|
||||||
|
return allNoDropService.isAllNoDrop(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getAllNoDrop(@NotNull String material, int amount) {
|
||||||
|
return setAllNoDrop(itemStackService.get(material, amount), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void giveAllNoDrop(HumanEntity entity, @NotNull String material, int amount) {
|
||||||
|
entity.getInventory().addItem(getAllNoDrop(material, amount));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,20 +2,22 @@ package me.redtea.nodropx.command;
|
|||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import me.mattstudios.mf.annotations.*;
|
|
||||||
import me.mattstudios.mf.base.CommandBase;
|
|
||||||
import me.redtea.nodropx.NoDropX;
|
import me.redtea.nodropx.NoDropX;
|
||||||
import me.redtea.nodropx.api.facade.NoDropAPI;
|
import me.redtea.nodropx.api.facade.NoDropAPI;
|
||||||
import me.redtea.nodropx.menu.facade.MenuFacade;
|
import me.redtea.nodropx.menu.facade.MenuFacade;
|
||||||
import me.redtea.nodropx.libs.message.container.Messages;
|
import me.redtea.nodropx.libs.message.container.Messages;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.AllNoDropService;
|
||||||
import me.redtea.nodropx.service.dropconfirm.DropConfirmService;
|
import me.redtea.nodropx.service.dropconfirm.DropConfirmService;
|
||||||
|
import me.redtea.nodropx.service.event.EventService;
|
||||||
import me.redtea.nodropx.service.material.ItemStackService;
|
import me.redtea.nodropx.service.material.ItemStackService;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import tech.carcadex.kotlinbukkitkit.commands.reflection.annotations.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -24,24 +26,26 @@ import java.util.Date;
|
|||||||
* <p>/nodrop - usage</p>
|
* <p>/nodrop - usage</p>
|
||||||
* <p>/nodrop give [Player] [Material] [Amount (optional)]</p>
|
* <p>/nodrop give [Player] [Material] [Amount (optional)]</p>
|
||||||
*/
|
*/
|
||||||
@Command("nodrop")
|
@Command(name = "nodrop")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class NoDropCommand extends CommandBase {
|
public class NoDropCommand {
|
||||||
private final Messages messages;
|
private final Messages messages;
|
||||||
private final NoDropAPI noDropAPI;
|
private final NoDropAPI noDropAPI;
|
||||||
private final MenuFacade menuFacade;
|
private final MenuFacade menuFacade;
|
||||||
private final NoDropX plugin;
|
private final NoDropX plugin;
|
||||||
private final ItemStackService itemStackService;
|
private final ItemStackService itemStackService;
|
||||||
private final DropConfirmService confirmService;
|
private final DropConfirmService confirmService;
|
||||||
|
private final EventService eventService;
|
||||||
|
private final AllNoDropService allNoDropService;
|
||||||
|
|
||||||
@Default
|
@Default
|
||||||
public void onDefault(final CommandSender sender) {
|
public void onDefault(final CommandSender sender) {
|
||||||
messages.get("usage").send(sender);
|
messages.get("usage").send(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("give")
|
@SubCommand(name = "give")
|
||||||
@Permission("nodropx.give")
|
@Permission(perm = "nodropx.give")
|
||||||
@Completion({"#players", "#materials", "#range:1-64"})
|
@TabComplete(complete = {"#players", "#materials", "#range:1-64"})
|
||||||
public void onGive(final CommandSender sender,
|
public void onGive(final CommandSender sender,
|
||||||
final Player player,
|
final Player player,
|
||||||
final String material,
|
final String material,
|
||||||
@@ -59,17 +63,17 @@ public class NoDropCommand extends CommandBase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("reload")
|
@SubCommand(name = "reload")
|
||||||
@Permission("nodropx.reload")
|
@Permission(perm = "nodropx.reload")
|
||||||
public void onReload(final CommandSender sender) {
|
public void onReload(final CommandSender sender) {
|
||||||
long time = new Date().getTime();
|
long time = new Date().getTime();
|
||||||
plugin.onReload();
|
plugin.onReload();
|
||||||
messages.get("reload").replaceAll("%time%", String.valueOf(new Date().getTime() - time)).send(sender);
|
messages.get("reload").replaceAll("%time%", String.valueOf(new Date().getTime() - time)).send(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("giveStorage")
|
@SubCommand(name = "giveStorage")
|
||||||
@Permission("nodropx.giveStorage")
|
@Permission(perm = "nodropx.giveStorage")
|
||||||
@Completion({"#players", "#materials", "#range:1-64"})
|
@TabComplete(complete = {"#players", "#materials", "#range:1-64"})
|
||||||
public void onGiveStorage(final CommandSender sender,
|
public void onGiveStorage(final CommandSender sender,
|
||||||
final String playerName,
|
final String playerName,
|
||||||
final String material,
|
final String material,
|
||||||
@@ -93,8 +97,8 @@ public class NoDropCommand extends CommandBase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("ignoreConfirm")
|
@SubCommand(name = "ignoreConfirm")
|
||||||
@Permission("nodropx.ignoreConfirm")
|
@Permission(perm = "nodropx.ignoreConfirm")
|
||||||
public void onIgnoreConfirm(final CommandSender sender, @Optional Player target) {
|
public void onIgnoreConfirm(final CommandSender sender, @Optional Player target) {
|
||||||
if(target == null) {
|
if(target == null) {
|
||||||
if(!(sender instanceof Player)) {
|
if(!(sender instanceof Player)) {
|
||||||
@@ -108,8 +112,8 @@ public class NoDropCommand extends CommandBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("ignoreConfirmTimed")
|
@SubCommand(name = "ignoreConfirmTimed")
|
||||||
@Permission("nodropx.ignoreConfirm.timed")
|
@Permission(perm = "nodropx.ignoreConfirm.timed")
|
||||||
public void onIgnoreConfirmTimed(final CommandSender sender, Integer sec, @Optional Player target) {
|
public void onIgnoreConfirmTimed(final CommandSender sender, Integer sec, @Optional Player target) {
|
||||||
if(target == null) {
|
if(target == null) {
|
||||||
if(!(sender instanceof Player)) {
|
if(!(sender instanceof Player)) {
|
||||||
@@ -133,8 +137,8 @@ public class NoDropCommand extends CommandBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("noIgnoreConfirm")
|
@SubCommand(name = "noIgnoreConfirm")
|
||||||
@Permission("nodropx.noIgnoreConfirm")
|
@Permission(perm = "nodropx.noIgnoreConfirm")
|
||||||
public void onNoIgnoreConfirm(final CommandSender sender, @Optional Player target) {
|
public void onNoIgnoreConfirm(final CommandSender sender, @Optional Player target) {
|
||||||
if(target == null) {
|
if(target == null) {
|
||||||
if(!(sender instanceof Player)) {
|
if(!(sender instanceof Player)) {
|
||||||
@@ -147,20 +151,21 @@ public class NoDropCommand extends CommandBase {
|
|||||||
confirmService.removeForceConfirm(target);
|
confirmService.removeForceConfirm(target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@SubCommand("applyHand")
|
@SubCommand(name = "applyHand")
|
||||||
@Permission("nodropx.applyhand")
|
@Permission(perm = "nodropx.applyhand")
|
||||||
public void onApplyHand(final Player sender) {
|
public void onApplyHand(final Player sender) {
|
||||||
try {
|
try {
|
||||||
noDropAPI.setNoDrop(sender.getInventory().getItemInMainHand(), true);
|
val event = eventService.callPlayerChangeNoDropEvent(sender, sender.getInventory().getItemInMainHand(), true);
|
||||||
|
noDropAPI.setNoDrop(sender.getInventory().getItemInMainHand(), event.getNewValue());
|
||||||
messages.get("applyHand.success").send(sender);
|
messages.get("applyHand.success").send(sender);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
messages.get("applyHand.fail").send(sender);
|
messages.get("applyHand.fail").send(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubCommand("gui")
|
@SubCommand(name = "gui")
|
||||||
@Alias("storage")
|
@Aliases(aliases = "storage")
|
||||||
@Permission("nodropx.gui")
|
@Permission(perm = "nodropx.gui")
|
||||||
public void onGui(final Player sender) {
|
public void onGui(final Player sender) {
|
||||||
menuFacade.openPersonalStorage(sender);
|
menuFacade.openPersonalStorage(sender);
|
||||||
}
|
}
|
||||||
@@ -172,4 +177,23 @@ public class NoDropCommand extends CommandBase {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubCommand(name = "giveallnodrop")
|
||||||
|
@Permission(perm = "nodropx.giveallnodrop")
|
||||||
|
@TabComplete(complete = {"#players", "#materials", "#range:1-64"})
|
||||||
|
public void onGiveAllNoDrop(final CommandSender sender,
|
||||||
|
final Player player,
|
||||||
|
final String material,
|
||||||
|
@Optional final Integer amount) {
|
||||||
|
try {
|
||||||
|
noDropAPI.giveAllNoDrop(player, material, amount == null || amount == 0 ? 1 : amount);
|
||||||
|
messages.get("give.success")
|
||||||
|
.replaceAll("%item%", material)
|
||||||
|
.replaceAll("%player%", player.getName())
|
||||||
|
.replaceAll("%amount%", amount == null ? "1" : amount.toString())
|
||||||
|
.send(sender);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
messages.get("give.fail").send(sender);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package me.redtea.nodropx.service.allnodrop;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service for checking all no drop items
|
||||||
|
* @since 1.0.4
|
||||||
|
* @author redtea
|
||||||
|
*/
|
||||||
|
public interface AllNoDropService {
|
||||||
|
/**
|
||||||
|
* Set no drop to item
|
||||||
|
* @param item the item who's no drop property are changing
|
||||||
|
* @param isAllNoDrop will the item can drop from inventory on death?
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
void setAllNoDrop(ItemStack item, boolean isAllNoDrop);
|
||||||
|
/**
|
||||||
|
* Check if item is NoDropAll
|
||||||
|
* @param item the item being checked
|
||||||
|
* @return true if item is NoDropAll
|
||||||
|
* @author redtea
|
||||||
|
* @since 1.0.4
|
||||||
|
*/
|
||||||
|
boolean isAllNoDrop(ItemStack item);
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package me.redtea.nodropx.service.allnodrop.impl;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.AllNoDropService;
|
||||||
|
import me.redtea.nodropx.service.nbt.NBTService;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AllNoDropServiceImpl implements AllNoDropService {
|
||||||
|
private final NBTService nbtService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setAllNoDrop(ItemStack item, boolean isAllNoDrop) {
|
||||||
|
nbtService.setBoolTag(item, "isAllNoDrop", isAllNoDrop);
|
||||||
|
nbtService.setBoolTag(item, "isNoDrop", isAllNoDrop);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllNoDrop(ItemStack item) {
|
||||||
|
return nbtService.getBoolTag(item, "isAllNoDrop");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,16 @@
|
|||||||
package me.redtea.nodropx.service.event;
|
package me.redtea.nodropx.service.event;
|
||||||
|
|
||||||
import me.redtea.nodropx.api.event.NoDropItemThrownEvent;
|
import me.redtea.nodropx.api.event.NoDropItemThrownEvent;
|
||||||
|
import me.redtea.nodropx.api.event.PlayerChangeNoDropEvent;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface EventService {
|
public interface EventService {
|
||||||
void callThrownEvent(Player who, ItemStack item, NoDropItemThrownEvent.Reason reason, Optional<Cancellable> rootEvent);
|
PlayerChangeNoDropEvent callPlayerChangeNoDropEvent(Player who, ItemStack item, boolean value);
|
||||||
|
@Nullable
|
||||||
|
NoDropItemThrownEvent callThrownEvent(Player who, ItemStack item, NoDropItemThrownEvent.Reason reason, Optional<Cancellable> rootEvent);
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ package me.redtea.nodropx.service.event.impl;
|
|||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import me.redtea.nodropx.api.event.NoDropItemThrownEvent;
|
import me.redtea.nodropx.api.event.NoDropItemThrownEvent;
|
||||||
|
import me.redtea.nodropx.api.event.PlayerChangeNoDropEvent;
|
||||||
import me.redtea.nodropx.service.event.EventService;
|
import me.redtea.nodropx.service.event.EventService;
|
||||||
import me.redtea.nodropx.service.nodrop.NoDropService;
|
import me.redtea.nodropx.service.nodrop.NoDropService;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@@ -16,8 +17,15 @@ public class EventServiceImpl implements EventService {
|
|||||||
private final NoDropService noDropService;
|
private final NoDropService noDropService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void callThrownEvent(Player who, ItemStack item, NoDropItemThrownEvent.Reason reason, Optional<Cancellable> rootEvent) {
|
public PlayerChangeNoDropEvent callPlayerChangeNoDropEvent(Player who, ItemStack item, boolean value) {
|
||||||
if(!noDropService.isNoDrop(item)) return;
|
PlayerChangeNoDropEvent callingEvent = new PlayerChangeNoDropEvent(who, value, item);
|
||||||
|
Bukkit.getPluginManager().callEvent(callingEvent);
|
||||||
|
return callingEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NoDropItemThrownEvent callThrownEvent(Player who, ItemStack item, NoDropItemThrownEvent.Reason reason, Optional<Cancellable> rootEvent) {
|
||||||
|
if(!noDropService.isNoDrop(item)) return null;
|
||||||
NoDropItemThrownEvent callingEvent = new NoDropItemThrownEvent(
|
NoDropItemThrownEvent callingEvent = new NoDropItemThrownEvent(
|
||||||
who,
|
who,
|
||||||
reason,
|
reason,
|
||||||
@@ -25,5 +33,6 @@ public class EventServiceImpl implements EventService {
|
|||||||
);
|
);
|
||||||
Bukkit.getPluginManager().callEvent(callingEvent);
|
Bukkit.getPluginManager().callEvent(callingEvent);
|
||||||
rootEvent.ifPresent(cancellable -> cancellable.setCancelled(callingEvent.isCancelled()));
|
rootEvent.ifPresent(cancellable -> cancellable.setCancelled(callingEvent.isCancelled()));
|
||||||
|
return callingEvent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,18 +9,20 @@ public interface NBTService {
|
|||||||
/**
|
/**
|
||||||
* Sets the NBT tag "isNoDrop", which indicates that the item is no drop
|
* Sets the NBT tag "isNoDrop", which indicates that the item is no drop
|
||||||
* @param item editable item
|
* @param item editable item
|
||||||
* @param isNoDrop tag value
|
* @param tag nbt tag
|
||||||
* @since 1.0.0
|
* @param value tag value
|
||||||
|
* @since 1.0.4
|
||||||
* @author redtea
|
* @author redtea
|
||||||
*/
|
*/
|
||||||
void setNoDropTag(ItemStack item, boolean isNoDrop);
|
void setBoolTag(ItemStack item, String tag, boolean value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value of the "isNoDrop" tag, which indicates that the item is no drop
|
* Gets the value of the "isNoDrop" tag, which indicates that the item is no drop
|
||||||
* @param item checking item
|
* @param item checking item
|
||||||
|
* @param tag nbt tag
|
||||||
* @return tag value
|
* @return tag value
|
||||||
* @since 1.0.0
|
* @since 1.0.4
|
||||||
* @author redtea
|
* @author redtea
|
||||||
*/
|
*/
|
||||||
boolean getNoDropTag(ItemStack item);
|
boolean getBoolTag(ItemStack item, String tag);
|
||||||
}
|
}
|
||||||
@@ -6,17 +6,19 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class Tr7zwNBTServiceImpl implements NBTService {
|
public class Tr7zwNBTServiceImpl implements NBTService {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNoDropTag(ItemStack item, boolean isNoDrop) {
|
public void setBoolTag(ItemStack item, String tag, boolean value) {
|
||||||
NBTItem nbtItem = new NBTItem(item);
|
NBTItem nbtItem = new NBTItem(item);
|
||||||
nbtItem.setBoolean("isNoDrop", true);
|
nbtItem.setBoolean(tag, value);
|
||||||
nbtItem.applyNBT(item);
|
nbtItem.applyNBT(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean getNoDropTag(ItemStack item) {
|
public boolean getBoolTag(ItemStack item, String tag) {
|
||||||
if(item == null || item.getType() == Material.AIR) return false;
|
if(item == null || item.getType() == Material.AIR) return false;
|
||||||
NBTItem nbtItem = new NBTItem(item);
|
NBTItem nbtItem = new NBTItem(item);
|
||||||
return nbtItem.hasTag("isNoDrop") && nbtItem.getBoolean("isNoDrop");
|
return nbtItem.hasTag(tag) && nbtItem.getBoolean(tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,13 +13,13 @@ public class NoDropServiceImpl implements NoDropService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNoDrop(ItemStack item, boolean isNoDrop) {
|
public void setNoDrop(ItemStack item, boolean isNoDrop) {
|
||||||
nbtService.setNoDropTag(item, isNoDrop);
|
nbtService.setBoolTag(item, "isNoDrop", true);
|
||||||
cosmeticService.applyAll(item);
|
cosmeticService.applyAll(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isNoDrop(ItemStack item) {
|
public boolean isNoDrop(ItemStack item) {
|
||||||
if(item == null) return false;
|
if(item == null) return false;
|
||||||
return nbtService.getNoDropTag(item);
|
return nbtService.getBoolTag(item, "isNoDrop");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,11 +6,13 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import me.redtea.nodropx.api.event.NoDropItemDropOnDeathEvent;
|
import me.redtea.nodropx.api.event.NoDropItemDropOnDeathEvent;
|
||||||
import me.redtea.nodropx.libs.carcadex.repo.Repo;
|
import me.redtea.nodropx.libs.carcadex.repo.Repo;
|
||||||
|
import me.redtea.nodropx.service.allnodrop.AllNoDropService;
|
||||||
import me.redtea.nodropx.service.capasity.CapacityService;
|
import me.redtea.nodropx.service.capasity.CapacityService;
|
||||||
import me.redtea.nodropx.service.dropconfirm.DropConfirmService;
|
import me.redtea.nodropx.service.dropconfirm.DropConfirmService;
|
||||||
import me.redtea.nodropx.service.nodrop.NoDropService;
|
import me.redtea.nodropx.service.nodrop.NoDropService;
|
||||||
import me.redtea.nodropx.service.respawn.RespawnService;
|
import me.redtea.nodropx.service.respawn.RespawnService;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@@ -21,6 +23,7 @@ import java.util.stream.Collectors;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class RespawnServiceImpl implements RespawnService {
|
public class RespawnServiceImpl implements RespawnService {
|
||||||
private final NoDropService noDropService;
|
private final NoDropService noDropService;
|
||||||
|
private final AllNoDropService allNoDropService;
|
||||||
private final Map<String, Pair[]> toRespawn = new HashMap<>();
|
private final Map<String, Pair[]> toRespawn = new HashMap<>();
|
||||||
private final CapacityService capacityService;
|
private final CapacityService capacityService;
|
||||||
|
|
||||||
@@ -38,9 +41,11 @@ public class RespawnServiceImpl implements RespawnService {
|
|||||||
public void saveItemsBeforeDeath(PlayerDeathEvent event) {
|
public void saveItemsBeforeDeath(PlayerDeathEvent event) {
|
||||||
Player player = event.getEntity();
|
Player player = event.getEntity();
|
||||||
Set<Integer> noDropSlots = new HashSet<>();
|
Set<Integer> noDropSlots = new HashSet<>();
|
||||||
|
boolean isHasAllNoDropItem = event.getDrops().stream().anyMatch(allNoDropService::isAllNoDrop);
|
||||||
for(int i = 0; i < player.getInventory().getSize(); ++i) {
|
for(int i = 0; i < player.getInventory().getSize(); ++i) {
|
||||||
ItemStack item = player.getInventory().getItem(i);
|
ItemStack item = player.getInventory().getItem(i);
|
||||||
if(!noDropService.isNoDrop(item)) continue;
|
if(!(noDropService.isNoDrop(item) || isHasAllNoDropItem) || item == null ||
|
||||||
|
item.getType() == Material.AIR) continue;
|
||||||
NoDropItemDropOnDeathEvent callingEvent = new NoDropItemDropOnDeathEvent(
|
NoDropItemDropOnDeathEvent callingEvent = new NoDropItemDropOnDeathEvent(
|
||||||
player,
|
player,
|
||||||
item
|
item
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ folia-supported: true
|
|||||||
permissions:
|
permissions:
|
||||||
nodropx.give:
|
nodropx.give:
|
||||||
description: "Allows give no drop items"
|
description: "Allows give no drop items"
|
||||||
|
nodropx.giveallnodrop:
|
||||||
|
description: "Allows give allnodrop items"
|
||||||
nodropx.reload:
|
nodropx.reload:
|
||||||
description: "Allows reload the plugin"
|
description: "Allows reload the plugin"
|
||||||
nodropx.gui:
|
nodropx.gui:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
usage:
|
usage:
|
||||||
- "&7[ &aUsage of command &e/nodrop &7]"
|
- "&7[ &aUsage of command &e/nodrop &7]"
|
||||||
- "&7| &a/give [player] [item] (amount) &e- give no drop item"
|
- "&7| &a/nodrop give [player] [item] (amount) &e- give no drop item"
|
||||||
give:
|
give:
|
||||||
fail: "&4[!] &cFail! Check item type for valid."
|
fail: "&4[!] &cFail! Check item type for valid."
|
||||||
success: "&2&l[!] &aGived &e%item%&a to &e%player%&a amount &e%amount%&a!"
|
success: "&2&l[!] &aGived &e%item%&a to &e%player%&a amount &e%amount%&a!"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
usage:
|
usage:
|
||||||
- "&7[ &aUsage of command &e/nodrop &7]"
|
- "&7[ &aUsage of command &e/nodrop &7]"
|
||||||
- "&7| &a/give [player] [item] (amount) &e- give no drop item"
|
- "&7| &a/nodrop give [player] [item] (amount) &e- give no drop item"
|
||||||
give:
|
give:
|
||||||
fail: "&4[!] &cFail! Check item type for valid."
|
fail: "&4[!] &cFail! Check item type for valid."
|
||||||
success: "&2&l[!] &aGived &e%item%&a to &e%player%&a amount &e%amount%&a!"
|
success: "&2&l[!] &aGived &e%item%&a to &e%player%&a amount &e%amount%&a!"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
usage:
|
usage:
|
||||||
- "<gray>[ <green>Usage of command <yellow>/nodrop <gray>]"
|
- "<gray>[ <green>Usage of command <yellow>/nodrop <gray>]"
|
||||||
- "<gray>| <green>/give [player] [item] (amount) <yellow>- give no drop item"
|
- "<gray>| <green>/nodrop give [player] [item] (amount) <yellow>- give no drop item"
|
||||||
give:
|
give:
|
||||||
fail: "<dark_red><bold>[!] <red>Fail! Check item type for valid."
|
fail: "<dark_red><bold>[!] <red>Fail! Check item type for valid."
|
||||||
success: "<green><bold>[!] <reset><green>Gived <yellow>%item%<green> to <yellow>%player%<green> amount <yellow>%amount%<green>!"
|
success: "<green><bold>[!] <reset><green>Gived <yellow>%item%<green> to <yellow>%player%<green> amount <yellow>%amount%<green>!"
|
||||||
|
|||||||
Reference in new issue
Block a user