Skip to content

Commit c1969ca

Browse files
committed
Fixes
1 parent adcf3bc commit c1969ca

26 files changed

+437
-511
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
<dependency>
9494
<groupId>io.github.mooy1</groupId>
9595
<artifactId>InfinityLib</artifactId>
96-
<version>4c37d7b</version>
96+
<version>4d619f6</version>
9797
<scope>compile</scope>
9898
</dependency>
9999
</dependencies>

src/main/java/io/github/mooy1/infinityexpansion/InfinityExpansion.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.github.mooy1.infinityexpansion;
22

33
import io.github.mooy1.infinityexpansion.implementation.mobdata.MobSimulationChamber;
4-
import io.github.mooy1.infinityexpansion.implementation.storage.StorageUnit;
4+
import io.github.mooy1.infinityexpansion.implementation.blocks.StorageUnit;
55
import io.github.mooy1.infinityexpansion.lists.InfinityRecipes;
66
import io.github.mooy1.infinityexpansion.setup.Setup;
77
import io.github.mooy1.infinityexpansion.setup.commands.Changelog;
@@ -34,32 +34,26 @@ public class InfinityExpansion extends JavaPlugin implements SlimefunAddon {
3434
@Override
3535
public void onEnable() {
3636
instance = this;
37-
38-
//config
37+
3938
PluginUtils.setup(this, "Mooy1/InfinityExpansion/master", getFile());
4039
MessageUtils.setPrefix(ChatColor.DARK_GRAY + "[" + ChatColor.AQUA + "Infinity" + ChatColor.GRAY + "Expansion" + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + " ");
4140
new CommandLib(this, "infinityexpansion", "infinityexpansion.admin", "/ie, /ix, /infinity");
4241
CommandLib.addCommands(new Changelog(), new GiveRecipe(), new ResetConfig());
4342
setupConfigOptions(getConfig());
4443

45-
//stats
4644
@SuppressWarnings("unused")
4745
final Metrics metrics = new Metrics(this, 8991);
4846

49-
//items
47+
InfinityRecipes.preItems();
48+
5049
Setup.setup(this);
51-
52-
//set enabled infinity recipes
53-
InfinityRecipes.setup(this);
54-
55-
//spam console
50+
51+
InfinityRecipes.postItems(this);
52+
5653
for (String line : getChangeLog()) {
5754
getLogger().log(Level.INFO, line);
5855
}
5956

60-
PluginUtils.runSync(() -> PluginUtils.log("Infinity Expansion will soon be moving some content to another addon! keep an eye out for its release!"), 300);
61-
62-
//ticker
6357
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
6458
if (currentTick < 60) {
6559
currentTick++;

src/main/java/io/github/mooy1/infinityexpansion/implementation/abstracts/Crafter.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.github.mooy1.infinityexpansion.utils.RecipeUtils;
44
import io.github.mooy1.infinitylib.filter.FilterType;
5+
import io.github.mooy1.infinitylib.filter.ItemFilter;
56
import io.github.mooy1.infinitylib.filter.MultiFilter;
67
import io.github.mooy1.infinitylib.objects.AbstractContainer;
78
import io.github.mooy1.infinitylib.player.MessageUtils;
@@ -62,6 +63,8 @@ public abstract class Crafter extends AbstractContainer {
6263
};
6364
private static final int STATUS_SLOT = 23;
6465

66+
private static final int EMPTY = new MultiFilter(FilterType.MIN_AMOUNT, new ItemFilter[9]).hashCode();
67+
6568
public Crafter(Category category, SlimefunItemStack stack, RecipeType recipeType, ItemStack[] recipe) {
6669
super(category, stack, recipeType, recipe);
6770

@@ -189,6 +192,10 @@ private void craft(@Nonnull BlockMenu inv, @Nonnull Player p) {
189192
private Pair<SlimefunItemStack, int[]> getOutput(@Nonnull BlockMenu inv) {
190193

191194
MultiFilter input = MultiFilter.fromMenu(FilterType.MIN_AMOUNT, inv, INPUT_SLOTS);
195+
196+
if (input.hashCode() == EMPTY) {
197+
return null;
198+
}
192199

193200
SlimefunItemStack output = this.recipes.get(input);
194201

src/main/java/io/github/mooy1/infinityexpansion/implementation/items/AdvancedAnvil.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/AdvancedAnvil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.mooy1.infinityexpansion.implementation.items;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import com.google.common.collect.MapDifference;
44
import com.google.common.collect.Maps;

src/main/java/io/github/mooy1/infinityexpansion/implementation/items/InfinityWorkbench.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/InfinityWorkbench.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
package io.github.mooy1.infinityexpansion.implementation.items;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import io.github.mooy1.infinityexpansion.lists.Categories;
44
import io.github.mooy1.infinityexpansion.lists.InfinityRecipes;
55
import io.github.mooy1.infinityexpansion.lists.Items;
66
import io.github.mooy1.infinityexpansion.setup.InfinityCategory;
77
import io.github.mooy1.infinityexpansion.utils.RecipeUtils;
88
import io.github.mooy1.infinitylib.filter.FilterType;
9+
import io.github.mooy1.infinitylib.filter.ItemFilter;
910
import io.github.mooy1.infinitylib.filter.MultiFilter;
1011
import io.github.mooy1.infinitylib.objects.AbstractContainer;
1112
import io.github.mooy1.infinitylib.player.MessageUtils;
@@ -16,10 +17,10 @@
1617
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
1718
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
1819
import me.mrCookieSlime.Slimefun.api.BlockStorage;
20+
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
1921
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
2022
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
2123
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
22-
import me.mrCookieSlime.Slimefun.cscorelib2.inventory.ItemUtils;
2324
import me.mrCookieSlime.Slimefun.cscorelib2.item.CustomItem;
2425
import org.bukkit.ChatColor;
2526
import org.bukkit.Location;
@@ -58,6 +59,7 @@ public class InfinityWorkbench extends AbstractContainer implements EnergyNetCom
5859
24, 25, 26
5960
};
6061
private static final int RECIPE_SLOT = 7;
62+
private static final int EMPTY = new MultiFilter(FilterType.MIN_AMOUNT, new ItemFilter[36]).hashCode();
6163

6264
public InfinityWorkbench() {
6365
super(Categories.MAIN_MATERIALS, Items.INFINITY_WORKBENCH, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {
@@ -102,7 +104,7 @@ public void onNewInstance(@Nonnull BlockMenu menu, @Nonnull Block b) {
102104
return false;
103105
});
104106
menu.addMenuClickHandler(RECIPE_SLOT, (p, slot, item, action) -> {
105-
InfinityCategory.openFromWorkBench(p, menu);
107+
InfinityCategory.open(p, new InfinityCategory.BackEntry(menu, null, null), true);
106108
return false;
107109
});
108110
}
@@ -154,7 +156,7 @@ public void craft(@Nonnull Block b, @Nonnull BlockMenu inv, @Nonnull Player p)
154156
return;
155157
}
156158

157-
ItemStack output = getOutput(inv);
159+
SlimefunItemStack output = getOutput(inv);
158160

159161
if (output == null) { //invalid
160162
MessageUtils.messageWithCD(p, 1000, ChatColor.RED + "Invalid Recipe!");
@@ -171,9 +173,10 @@ public void craft(@Nonnull Block b, @Nonnull BlockMenu inv, @Nonnull Player p)
171173
inv.consumeItem(slot);
172174
}
173175
}
174-
MessageUtils.message(p, ChatColor.GREEN + "Successfully crafted: " + ChatColor.WHITE + ItemUtils.getItemName(output));
176+
177+
MessageUtils.message(p, ChatColor.GREEN + "Successfully crafted: " + ChatColor.WHITE + output.getDisplayName());
175178

176-
inv.pushItem(output, OUTPUT_SLOTS);
179+
inv.pushItem(output.clone(), OUTPUT_SLOTS);
177180
setCharge(b.getLocation(), 0);
178181

179182
}
@@ -185,8 +188,12 @@ public void craft(@Nonnull Block b, @Nonnull BlockMenu inv, @Nonnull Player p)
185188
* @return output if any
186189
*/
187190
@Nullable
188-
public ItemStack getOutput(@Nonnull BlockMenu inv) {
189-
return InfinityRecipes.RECIPES.inverse().get(MultiFilter.fromMenu(FilterType.MIN_AMOUNT, inv, INPUT_SLOTS));
191+
public SlimefunItemStack getOutput(@Nonnull BlockMenu inv) {
192+
MultiFilter filter = MultiFilter.fromMenu(FilterType.MIN_AMOUNT, inv, INPUT_SLOTS);
193+
if (filter.hashCode() == EMPTY) {
194+
return null;
195+
}
196+
return InfinityRecipes.RECIPES.get(filter);
190197
}
191198

192199
@Nonnull

src/main/java/io/github/mooy1/infinityexpansion/implementation/storage/StorageForge.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/StorageForge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.mooy1.infinityexpansion.implementation.storage;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import io.github.mooy1.infinityexpansion.implementation.abstracts.Crafter;
44
import io.github.mooy1.infinityexpansion.lists.Categories;

src/main/java/io/github/mooy1/infinityexpansion/implementation/storage/StorageUnit.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/StorageUnit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.mooy1.infinityexpansion.implementation.storage;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import io.github.mooy1.infinityexpansion.InfinityExpansion;
44
import io.github.mooy1.infinityexpansion.implementation.abstracts.LoreStorage;

src/main/java/io/github/mooy1/infinityexpansion/implementation/items/Strainer.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/Strainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.mooy1.infinityexpansion.implementation.items;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import io.github.mooy1.infinityexpansion.InfinityExpansion;
44
import io.github.mooy1.infinityexpansion.lists.Items;

src/main/java/io/github/mooy1/infinityexpansion/implementation/items/StrainerBase.java renamed to src/main/java/io/github/mooy1/infinityexpansion/implementation/blocks/StrainerBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.mooy1.infinityexpansion.implementation.items;
1+
package io.github.mooy1.infinityexpansion.implementation.blocks;
22

33
import io.github.mooy1.infinityexpansion.lists.Categories;
44
import io.github.mooy1.infinityexpansion.lists.Items;

src/main/java/io/github/mooy1/infinityexpansion/implementation/gear/VeinMinerRune.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import io.github.mooy1.infinitylib.general.LocationUtils;
88
import io.github.mooy1.infinitylib.items.LoreUtils;
99
import io.github.mooy1.infinitylib.math.RandomUtils;
10+
import io.github.mooy1.infinitylib.player.LeaveListener;
1011
import io.github.mooy1.infinitylib.player.MessageUtils;
1112
import io.github.thebusybiscuit.slimefun4.core.attributes.NotPlaceable;
1213
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
@@ -31,7 +32,6 @@
3132
import org.bukkit.event.block.BlockBreakEvent;
3233
import org.bukkit.event.entity.FoodLevelChangeEvent;
3334
import org.bukkit.event.player.PlayerDropItemEvent;
34-
import org.bukkit.event.player.PlayerQuitEvent;
3535
import org.bukkit.inventory.ItemStack;
3636
import org.bukkit.inventory.meta.Damageable;
3737
import org.bukkit.inventory.meta.ItemMeta;
@@ -48,6 +48,7 @@
4848
import java.util.Objects;
4949
import java.util.Optional;
5050
import java.util.Set;
51+
import java.util.UUID;
5152

5253
/**
5354
* A VeinMiner rune, most code from {@link SoulboundRune}
@@ -61,7 +62,7 @@ public class VeinMinerRune extends SlimefunItem implements Listener, NotPlaceabl
6162
private static final int MAX = 64;
6263
private static final long CD = 1000;
6364
private static NamespacedKey key = null;
64-
private static final Map<Player, Long> CDS = new HashMap<>();
65+
private static final Map<UUID, Long> CDS = new HashMap<>();
6566
private static final String[] LORE = {"", ChatColor.AQUA + "Veinminer - Crouch to use"};
6667
private static final Set<String> ALLOWED = new HashSet<>(Arrays.asList(
6768
"_ORE", "_LOG", "_WOOD", "GILDED", "SOUL", "GRAVEL",
@@ -76,7 +77,7 @@ public VeinMinerRune(InfinityExpansion plugin) {
7677
new ItemStack(Material.REDSTONE_ORE), SlimefunItems.BLANK_RUNE, new ItemStack(Material.LAPIS_ORE),
7778
Items.MAGSTEEL, SlimefunItems.MAGIC_LUMP_3, Items.MAGSTEEL,
7879
});
79-
80+
new LeaveListener(CDS);
8081
plugin.getServer().getPluginManager().registerEvents(this, plugin);
8182
key = new NamespacedKey(plugin, "vein_miner");
8283
}
@@ -207,11 +208,12 @@ public void onBlockBreak(BlockBreakEvent e) {
207208

208209
if (BlockStorage.hasBlockInfo(l)) return;
209210

210-
if (CDS.containsKey(p) && System.currentTimeMillis() - CDS.get(p) < CD) {
211-
MessageUtils.messageWithCD(p, 500, ChatColor.GOLD + "Wait " + ChatColor.YELLOW + (CD - (System.currentTimeMillis() - CDS.get(p))) + ChatColor.GOLD + " ms before using again!");
211+
Long prev = CDS.get(p.getUniqueId());
212+
if (prev != null && System.currentTimeMillis() - prev < CD) {
213+
MessageUtils.messageWithCD(p, 500, ChatColor.GOLD + "Wait " + ChatColor.YELLOW + (CD - (System.currentTimeMillis() - prev)) + ChatColor.GOLD + " ms before using again!");
212214
return;
213215
}
214-
CDS.put(p, System.currentTimeMillis());
216+
CDS.put(p.getUniqueId(), System.currentTimeMillis());
215217

216218
Set<Block> found = new HashSet<>();
217219
Set<Location> checked = new HashSet<>();
@@ -273,9 +275,4 @@ private void getVein(Set<Location> checked, Set<Block> found, Location l, Block
273275
}
274276
}
275277

276-
@EventHandler
277-
private void onPlayerLeave(PlayerQuitEvent e) {
278-
CDS.remove(e.getPlayer());
279-
}
280-
281278
}

0 commit comments

Comments
 (0)