mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-07 12:11:22 +01:00
Merge branch 'master' of https://Indyuce@git.lumine.io/mmoteam/mmoitems.git
This commit is contained in:
commit
2e99b03387
@ -0,0 +1,21 @@
|
||||
package net.Indyuce.mmoitems.api.crafting.trigger;
|
||||
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.mmogroup.mmolib.api.MMOLineConfig;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class CommandTrigger extends Trigger {
|
||||
private final String command;
|
||||
|
||||
public CommandTrigger(MMOLineConfig config) {
|
||||
super("command");
|
||||
|
||||
config.validate("format");
|
||||
command = config.getString("format");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void whenCrafting(PlayerData data) {
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replace("%player%", data.getPlayer().getName()));
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package net.Indyuce.mmoitems.api.crafting.trigger;
|
||||
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.mmogroup.mmolib.api.MMOLineConfig;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class MessageTrigger extends Trigger {
|
||||
private final String message;
|
||||
|
||||
public MessageTrigger(MMOLineConfig config) {
|
||||
super("message");
|
||||
|
||||
config.validate("format");
|
||||
message = config.getString("format");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void whenCrafting(PlayerData data) {
|
||||
data.getPlayer().sendMessage(MMOItems.plugin.getPlaceholderParser().parse(data.getPlayer(),
|
||||
message.replace("%player%", data.getPlayer().getName())));
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package net.Indyuce.mmoitems.api.crafting.trigger;
|
||||
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.mmogroup.mmolib.api.MMOLineConfig;
|
||||
import org.bukkit.Sound;
|
||||
|
||||
public class SoundTrigger extends Trigger {
|
||||
private final Sound sound;
|
||||
private final float vol, pitch;
|
||||
|
||||
public SoundTrigger(MMOLineConfig config) {
|
||||
super("sound");
|
||||
|
||||
config.validate("sound");
|
||||
|
||||
sound = Sound.valueOf(config.getString("sound").toUpperCase().replace("-", "_"));
|
||||
vol = config.contains("volume") ? (float) config.getDouble("volume") : 1f;
|
||||
pitch = config.contains("pitch") ? (float) config.getDouble("pitch") : 1f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void whenCrafting(PlayerData player) {
|
||||
player.getPlayer().playSound(player.getPlayer().getLocation(), sound, vol, pitch);
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package net.Indyuce.mmoitems.comp.parse.placeholders;
|
||||
|
||||
import net.asangarin.hexcolors.ColorParse;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
@ -11,6 +12,6 @@ public class PlaceholderAPIParser implements PlaceholderParser {
|
||||
|
||||
@Override
|
||||
public String parse(OfflinePlayer player, String string) {
|
||||
return PlaceholderAPI.setPlaceholders(player, string.replace("%player%", player.getName()));
|
||||
return new ColorParse('&', PlaceholderAPI.setPlaceholders(player, string.replace("%player%", player.getName()))).toChatColor();
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,11 @@
|
||||
package net.Indyuce.mmoitems.listener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.CachedRecipe;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.CustomRecipe;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -19,10 +17,8 @@ import org.bukkit.event.inventory.PrepareItemCraftEvent;
|
||||
import org.bukkit.inventory.CraftingInventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.CachedRecipe;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.CustomRecipe;
|
||||
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class CraftingListener implements Listener {
|
||||
Map<UUID, CachedRecipe> cachedRecipe = new HashMap<>();
|
||||
@ -86,7 +82,16 @@ public class CraftingListener implements Listener {
|
||||
for (CustomRecipe recipe : MMOItems.plugin.getRecipes().getCustomRecipes()) {
|
||||
if (!recipe.fitsPlayerCrafting() && inv.getMatrix().length == 4)
|
||||
continue;
|
||||
int airCount = 0;
|
||||
|
||||
for(Entry<Integer, WorkbenchIngredient> ingredient : recipe.getIngredients()){
|
||||
if(ingredient.getValue().matches(new ItemStack(Material.AIR))){
|
||||
airCount++;
|
||||
}
|
||||
}
|
||||
if(recipe.isEmpty() || airCount > 8){
|
||||
continue;
|
||||
}
|
||||
CachedRecipe cached = new CachedRecipe();
|
||||
boolean matches = true;
|
||||
List<Integer> slotsChecked = new ArrayList<>();
|
||||
|
@ -12,6 +12,9 @@ import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmoitems.api.crafting.trigger.CommandTrigger;
|
||||
import net.Indyuce.mmoitems.api.crafting.trigger.MessageTrigger;
|
||||
import net.Indyuce.mmoitems.api.crafting.trigger.SoundTrigger;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
import com.google.gson.JsonParser;
|
||||
@ -49,6 +52,7 @@ public class CraftingManager {
|
||||
private final Map<String, CraftingStation> stations = new HashMap<>();
|
||||
|
||||
public CraftingManager() {
|
||||
// conditions
|
||||
registerCondition("level", config -> new LevelCondition(config), new ConditionalDisplay("&a" + AltChar.check + " Requires Level #level#", "&c" + AltChar.cross + " Requires Level #level#"));
|
||||
registerCondition("permission", config -> new PermissionCondition(config), null);
|
||||
registerCondition("mana", config -> new ManaCondition(config), new ConditionalDisplay("&a" + AltChar.check + " Requires #mana# Mana", "&c" + AltChar.cross + " Requires #mana# Mana"));
|
||||
@ -57,6 +61,12 @@ public class CraftingManager {
|
||||
registerCondition("class", config -> new ClassCondition(config), new ConditionalDisplay("&a" + AltChar.check + " Required Class: #class#", "&c" + AltChar.cross + " Required Class: #class#"));
|
||||
registerCondition("ingredient", config -> new IngredientCondition(), null);
|
||||
|
||||
// triggers
|
||||
registerTrigger("command", config -> new CommandTrigger(config));
|
||||
registerTrigger("message", config -> new MessageTrigger(config));
|
||||
registerTrigger("sound", config -> new SoundTrigger(config));
|
||||
|
||||
// ingredients
|
||||
registerIngredient("vanilla", config -> new VanillaIngredient(config), new ConditionalDisplay("&8" + AltChar.check + " &7#amount# #item#", "&c" + AltChar.cross + " &7#amount# #item#"), nbt -> true, item -> item.getItem().getType().name().toLowerCase() + "_" + (item.getItem().hasItemMeta() ? item.getItem().getItemMeta().getDisplayName() : null));
|
||||
registerIngredient("mmoitem", config -> new MMOItemIngredient(config), new ConditionalDisplay("&8" + AltChar.check + " &7#amount# #level##item#", "&c" + AltChar.cross + " &7#amount# #level##item#"), nbt -> nbt.hasType(), item -> {
|
||||
String upgradeString = item.getString("MMOITEMS_UPGRADE");
|
||||
|
Loading…
Reference in New Issue
Block a user