mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-21 07:59:19 +00:00
add left and right click to possible actions
This commit is contained in:
@@ -17,6 +17,7 @@ import me.clip.placeholderapi.PlaceholderAPI;
|
|||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.spongepowered.configurate.ConfigurationNode;
|
import org.spongepowered.configurate.ConfigurationNode;
|
||||||
@@ -150,7 +151,8 @@ public class Menu {
|
|||||||
|
|
||||||
Type finalType = type;
|
Type finalType = type;
|
||||||
guiItem.setAction(event -> {
|
guiItem.setAction(event -> {
|
||||||
if (finalType != null) finalType.run(user, config);
|
final ClickType clickType = event.getClick();
|
||||||
|
if (finalType != null) finalType.run(user, config, clickType);
|
||||||
|
|
||||||
for (int i : slots) {
|
for (int i : slots) {
|
||||||
gui.updateItem(i, updateLore(player, originalItem.clone()));
|
gui.updateItem(i, updateLore(player, originalItem.clone()));
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.hibiscusmc.hmccosmetics.gui.type;
|
package com.hibiscusmc.hmccosmetics.gui.type;
|
||||||
|
|
||||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.spongepowered.configurate.ConfigurationNode;
|
import org.spongepowered.configurate.ConfigurationNode;
|
||||||
|
|
||||||
@@ -18,6 +19,9 @@ public class Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
public void run(CosmeticUser user, ConfigurationNode config) {
|
||||||
|
run(user, config, null);
|
||||||
|
}
|
||||||
|
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||||
// Override
|
// Override
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.hibiscusmc.hmccosmetics.gui.special.DyeMenu;
|
|||||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.spongepowered.configurate.ConfigurationNode;
|
import org.spongepowered.configurate.ConfigurationNode;
|
||||||
import org.spongepowered.configurate.serialize.SerializationException;
|
import org.spongepowered.configurate.serialize.SerializationException;
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ public class TypeCosmetic extends Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||||
if (config.node("cosmetic").virtual()) return;
|
if (config.node("cosmetic").virtual()) return;
|
||||||
String cosmeticName = config.node("cosmetic").getString();
|
String cosmeticName = config.node("cosmetic").getString();
|
||||||
Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName);
|
Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName);
|
||||||
@@ -40,6 +41,15 @@ public class TypeCosmetic extends Type {
|
|||||||
try {
|
try {
|
||||||
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
||||||
|
|
||||||
|
if (clickType != null) {
|
||||||
|
if (clickType.isLeftClick()) {
|
||||||
|
if (!actionConfig.node("left-click").virtual()) actionStrings.addAll(actionConfig.node("left-click").getList(String.class));
|
||||||
|
}
|
||||||
|
if (clickType.isRightClick()) {
|
||||||
|
if (!actionConfig.node("right-click").virtual()) actionStrings.addAll(actionConfig.node("right-click").getList(String.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (user.getCosmetic(cosmetic.getSlot()) == cosmetic) {
|
if (user.getCosmetic(cosmetic.getSlot()) == cosmetic) {
|
||||||
if (!actionConfig.node("on-unequip").virtual()) actionStrings.addAll(actionConfig.node("on-unequip").getList(String.class));
|
if (!actionConfig.node("on-unequip").virtual()) actionStrings.addAll(actionConfig.node("on-unequip").getList(String.class));
|
||||||
MessagesUtil.sendDebugMessages("on-unequip");
|
MessagesUtil.sendDebugMessages("on-unequip");
|
||||||
@@ -61,7 +71,6 @@ public class TypeCosmetic extends Type {
|
|||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
//user.toggleCosmetic(cosmetic);
|
|
||||||
user.updateCosmetic(cosmetic.getSlot());
|
user.updateCosmetic(cosmetic.getSlot());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.hibiscusmc.hmccosmetics.gui.type.types;
|
|||||||
import com.hibiscusmc.hmccosmetics.gui.action.Actions;
|
import com.hibiscusmc.hmccosmetics.gui.action.Actions;
|
||||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.spongepowered.configurate.ConfigurationNode;
|
import org.spongepowered.configurate.ConfigurationNode;
|
||||||
import org.spongepowered.configurate.serialize.SerializationException;
|
import org.spongepowered.configurate.serialize.SerializationException;
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ public class TypeEmpty extends Type {
|
|||||||
|
|
||||||
// This is the code that's run when the item is clicked.
|
// This is the code that's run when the item is clicked.
|
||||||
@Override
|
@Override
|
||||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||||
List<String> actionStrings = new ArrayList<>(); // List where we keep the actions the server will execute.
|
List<String> actionStrings = new ArrayList<>(); // List where we keep the actions the server will execute.
|
||||||
ConfigurationNode actionConfig = config.node("actions"); // Configuration node that actions are under.
|
ConfigurationNode actionConfig = config.node("actions"); // Configuration node that actions are under.
|
||||||
|
|
||||||
@@ -31,6 +32,15 @@ public class TypeEmpty extends Type {
|
|||||||
// with actions, mearly what should be done for each item.
|
// with actions, mearly what should be done for each item.
|
||||||
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
||||||
|
|
||||||
|
if (clickType != null) {
|
||||||
|
if (clickType.isLeftClick()) {
|
||||||
|
if (!actionConfig.node("left-click").virtual()) actionStrings.addAll(actionConfig.node("left-click").getList(String.class));
|
||||||
|
}
|
||||||
|
if (clickType.isRightClick()) {
|
||||||
|
if (!actionConfig.node("right-click").virtual()) actionStrings.addAll(actionConfig.node("right-click").getList(String.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// We run the actions once we got the raw strings from the config.
|
// We run the actions once we got the raw strings from the config.
|
||||||
Actions.runActions(user, actionStrings);
|
Actions.runActions(user, actionStrings);
|
||||||
} catch (SerializationException e) {
|
} catch (SerializationException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user