mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
[CI skip] Updated dependencies
This commit is contained in:
parent
b8a94e22e5
commit
a817903a04
4
pom.xml
4
pom.xml
@ -104,13 +104,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.TheBusyBiscuit</groupId>
|
<groupId>com.github.TheBusyBiscuit</groupId>
|
||||||
<artifactId>CS-CoreLib</artifactId>
|
<artifactId>CS-CoreLib</artifactId>
|
||||||
<version>ec5b4c24e3</version>
|
<version>e3242c600b</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.thebusybiscuit</groupId>
|
<groupId>com.github.thebusybiscuit</groupId>
|
||||||
<artifactId>CS-CoreLib2</artifactId>
|
<artifactId>CS-CoreLib2</artifactId>
|
||||||
<version>0.7.7</version>
|
<version>0.8</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -2,7 +2,6 @@ package io.github.thebusybiscuit.slimefun4.core.commands;
|
|||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -26,8 +25,6 @@ import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.StatsCommand
|
|||||||
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.TeleporterCommand;
|
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.TeleporterCommand;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.TimingsCommand;
|
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.TimingsCommand;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.VersionsCommand;
|
import io.github.thebusybiscuit.slimefun4.core.commands.subcommands.VersionsCommand;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder.TitleType;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
@ -68,25 +65,21 @@ public class SlimefunCommand implements CommandExecutor, Listener {
|
|||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("elevator")) {
|
else if (args[0].equalsIgnoreCase("elevator")) {
|
||||||
if (sender instanceof Player && args.length == 4) {
|
if (sender instanceof Player && args.length == 4) {
|
||||||
double x = Integer.parseInt(args[1]) + 0.5D;
|
Player p = (Player) sender;
|
||||||
double y = Integer.parseInt(args[2]) + 0.4D;
|
|
||||||
double z = Integer.parseInt(args[3]) + 0.5D;
|
|
||||||
|
|
||||||
if (BlockStorage.getLocationInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])).getLocation(), "floor") != null) {
|
int x = Integer.parseInt(args[1]);
|
||||||
SlimefunPlugin.getUtilities().elevatorUsers.add(((Player) sender).getUniqueId());
|
int y = Integer.parseInt(args[2]);
|
||||||
float yaw = ((Player) sender).getEyeLocation().getYaw() + 180;
|
int z = Integer.parseInt(args[3]);
|
||||||
|
|
||||||
|
if (BlockStorage.getLocationInfo(p.getWorld().getBlockAt(x, y, z).getLocation(), "floor") != null) {
|
||||||
|
SlimefunPlugin.getUtilities().elevatorUsers.add(p.getUniqueId());
|
||||||
|
float yaw = p.getEyeLocation().getYaw() + 180;
|
||||||
if (yaw > 180) yaw = -180 + (yaw - 180);
|
if (yaw > 180) yaw = -180 + (yaw - 180);
|
||||||
((Player) sender).teleport(new Location(((Player) sender).getWorld(), x, y, z, yaw, ((Player) sender).getEyeLocation().getPitch()));
|
|
||||||
|
|
||||||
try {
|
p.teleport(new Location(p.getWorld(), x + 0.5, y + 0.4, z + 0.5, yaw, p.getEyeLocation().getPitch()));
|
||||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText("&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(((Player) sender).getWorld().getBlockAt(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])).getLocation(), "floor")));
|
|
||||||
TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(" ");
|
|
||||||
|
|
||||||
title.send(TitleType.TITLE, ((Player) sender));
|
String title = "&r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getLocationInfo(p.getWorld().getBlockAt(x, y, z).getLocation(), "floor"));
|
||||||
subtitle.send(TitleType.SUBTITLE, ((Player) sender));
|
p.sendTitle(title, " ", 20, 60, 20);
|
||||||
} catch (Exception e) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while a Player used an Elevator in Slimefun " + Slimefun.getVersion(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -5,10 +5,10 @@ import java.util.Optional;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.players.PlayerList;
|
import io.github.thebusybiscuit.cscorelib2.players.PlayerList;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.commands.SlimefunCommand;
|
import io.github.thebusybiscuit.slimefun4.core.commands.SlimefunCommand;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.commands.SubCommand;
|
import io.github.thebusybiscuit.slimefun4.core.commands.SubCommand;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
|
@ -55,10 +55,10 @@ public class BookSlimefunGuide implements ISlimefunGuide {
|
|||||||
|
|
||||||
int tier = 0;
|
int tier = 0;
|
||||||
|
|
||||||
for (final Category category: Category.list()) {
|
for (Category category : Category.list()) {
|
||||||
boolean locked = true;
|
boolean locked = true;
|
||||||
|
|
||||||
for (SlimefunItem item: category.getItems()) {
|
for (SlimefunItem item : category.getItems()) {
|
||||||
if (Slimefun.isEnabled(p, item, false)) {
|
if (Slimefun.isEnabled(p, item, false)) {
|
||||||
locked = false;
|
locked = false;
|
||||||
break;
|
break;
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
package io.github.thebusybiscuit.slimefun4.core.utils;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.FireworkEffect;
|
||||||
|
import org.bukkit.FireworkEffect.Type;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Firework;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.meta.FireworkMeta;
|
||||||
|
|
||||||
|
public final class FireworkUtils {
|
||||||
|
|
||||||
|
private static final Color[] colors = {Color.AQUA, Color.BLACK, Color.BLUE, Color.FUCHSIA, Color.GRAY, Color.GREEN, Color.LIME, Color.MAROON, Color.NAVY, Color.OLIVE, Color.ORANGE, Color.PURPLE, Color.RED, Color.SILVER, Color.TEAL, Color.WHITE, Color.YELLOW};
|
||||||
|
|
||||||
|
private FireworkUtils() {}
|
||||||
|
|
||||||
|
public static void launchFirework(Location l, Color color) {
|
||||||
|
Firework fw = (Firework)l.getWorld().spawnEntity(l, EntityType.FIREWORK);
|
||||||
|
|
||||||
|
FireworkMeta meta = fw.getFireworkMeta();
|
||||||
|
FireworkEffect effect = getRandomEffect(ThreadLocalRandom.current(), color);
|
||||||
|
meta.addEffect(effect);
|
||||||
|
meta.setPower(ThreadLocalRandom.current().nextInt(2) + 1);
|
||||||
|
fw.setFireworkMeta(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Firework createFirework(Location l, Color color) {
|
||||||
|
Firework fw = (Firework)l.getWorld().spawnEntity(l, EntityType.FIREWORK);
|
||||||
|
FireworkMeta meta = fw.getFireworkMeta();
|
||||||
|
FireworkEffect effect = FireworkEffect.builder().flicker(ThreadLocalRandom.current().nextBoolean()).withColor(color).with(ThreadLocalRandom.current().nextInt(3) + 1 == 1 ? Type.BALL: Type.BALL_LARGE).trail(ThreadLocalRandom.current().nextBoolean()).build();
|
||||||
|
meta.addEffect(effect);
|
||||||
|
meta.setPower(ThreadLocalRandom.current().nextInt(2) + 1);
|
||||||
|
fw.setFireworkMeta(meta);
|
||||||
|
return fw;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void launchRandom(Player p, int amount) {
|
||||||
|
for (int i = 0; i < amount; i++) {
|
||||||
|
Location l = p.getLocation().clone();
|
||||||
|
l.setX(l.getX() + ThreadLocalRandom.current().nextInt(amount));
|
||||||
|
l.setX(l.getX() - ThreadLocalRandom.current().nextInt(amount));
|
||||||
|
l.setZ(l.getZ() + ThreadLocalRandom.current().nextInt(amount));
|
||||||
|
l.setZ(l.getZ() - ThreadLocalRandom.current().nextInt(amount));
|
||||||
|
|
||||||
|
launchFirework(l, getRandomColor());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FireworkEffect getRandomEffect(Random random, Color color) {
|
||||||
|
return FireworkEffect.builder()
|
||||||
|
.flicker(random.nextBoolean())
|
||||||
|
.withColor(color)
|
||||||
|
.with(random.nextBoolean() ? Type.BALL: Type.BALL_LARGE)
|
||||||
|
.trail(random.nextBoolean())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Color getRandomColor() {
|
||||||
|
return colors[ThreadLocalRandom.current().nextInt(colors.length)];
|
||||||
|
}
|
||||||
|
}
|
@ -10,8 +10,8 @@ import org.bukkit.event.inventory.FurnaceBurnEvent;
|
|||||||
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.recipes.MinecraftRecipe;
|
import io.github.thebusybiscuit.cscorelib2.recipes.MinecraftRecipe;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnhancedFurnace;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnhancedFurnace;
|
||||||
|
@ -32,7 +32,7 @@ import org.bukkit.potion.PotionEffect;
|
|||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package me.mrCookieSlime.Slimefun.GPS;
|
package me.mrCookieSlime.Slimefun.GPS;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -12,10 +11,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder;
|
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.TitleBuilder.TitleType;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|
||||||
|
|
||||||
public final class TeleportationSequence {
|
public final class TeleportationSequence {
|
||||||
|
|
||||||
@ -51,54 +48,36 @@ public final class TeleportationSequence {
|
|||||||
SlimefunPlugin.getUtilities().teleporterUsers.remove(uuid);
|
SlimefunPlugin.getUtilities().teleporterUsers.remove(uuid);
|
||||||
|
|
||||||
if (p != null) {
|
if (p != null) {
|
||||||
try {
|
p.sendTitle(ChatColors.color("&4Teleportation cancelled!"), ChatColors.color("&c&k40&r&c%"), 20, 60, 20);
|
||||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(ChatColor.translateAlternateColorCodes('&', "&4Teleportation cancelled"));
|
|
||||||
TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(ChatColor.translateAlternateColorCodes('&', "&40%"));
|
|
||||||
|
|
||||||
title.send(TitleType.TITLE, p);
|
|
||||||
subtitle.send(TitleType.SUBTITLE, p);
|
|
||||||
} catch(Exception x) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while cancelling a Teleportation Sequence for Slimefun " + Slimefun.getVersion(), x);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void updateProgress(final UUID uuid, final int speed, final int progress, final Location source, final Location destination, final boolean resistance) {
|
private static void updateProgress(UUID uuid, int speed, int progress, Location source, Location destination, boolean resistance) {
|
||||||
Player p = Bukkit.getPlayer(uuid);
|
Player p = Bukkit.getPlayer(uuid);
|
||||||
|
|
||||||
if (isValid(p, source)) {
|
if (isValid(p, source)) {
|
||||||
try {
|
if (progress > 99) {
|
||||||
if (progress > 99) {
|
p.sendTitle(ChatColors.color("&3Teleported!"), ChatColors.color("&b100%"), 20, 60, 20);
|
||||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(ChatColor.translateAlternateColorCodes('&', "&3Teleported!"));
|
|
||||||
TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(20, 60, 20).addText(ChatColor.translateAlternateColorCodes('&', "&b100%"));
|
|
||||||
|
|
||||||
title.send(TitleType.TITLE, p);
|
p.teleport(destination);
|
||||||
subtitle.send(TitleType.SUBTITLE, p);
|
|
||||||
|
|
||||||
p.teleport(destination);
|
if (resistance) {
|
||||||
|
p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 20));
|
||||||
if (resistance) {
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&b&lYou have been given 30 Seconds of Invulnerability!"));
|
||||||
p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 20));
|
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&b&lYou have been given 30 Seconds of Invulnerability!"));
|
|
||||||
}
|
|
||||||
|
|
||||||
destination.getWorld().spawnParticle(Particle.PORTAL,new Location(destination.getWorld(), destination.getX(), destination.getY() + 1, destination.getZ()),progress * 2, 0.2F, 0.8F, 0.2F );
|
|
||||||
destination.getWorld().playSound(destination, Sound.BLOCK_BEACON_ACTIVATE, 1F, 1F);
|
|
||||||
SlimefunPlugin.getUtilities().teleporterUsers.remove(uuid);
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
TitleBuilder title = (TitleBuilder) new TitleBuilder(0, 60, 0).addText(ChatColor.translateAlternateColorCodes('&', "&3Teleporting..."));
|
|
||||||
TitleBuilder subtitle = (TitleBuilder) new TitleBuilder(0, 60, 0).addText(ChatColor.translateAlternateColorCodes('&', "&b" + progress + "%"));
|
|
||||||
|
|
||||||
title.send(TitleType.TITLE, p);
|
destination.getWorld().spawnParticle(Particle.PORTAL,new Location(destination.getWorld(), destination.getX(), destination.getY() + 1, destination.getZ()),progress * 2, 0.2F, 0.8F, 0.2F );
|
||||||
subtitle.send(TitleType.SUBTITLE, p);
|
destination.getWorld().playSound(destination, Sound.BLOCK_BEACON_ACTIVATE, 1F, 1F);
|
||||||
|
SlimefunPlugin.getUtilities().teleporterUsers.remove(uuid);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
p.sendTitle(ChatColors.color("&3Teleporting..."), ChatColors.color("&b" + progress + "%"), 0, 60, 0);
|
||||||
|
|
||||||
source.getWorld().spawnParticle(Particle.PORTAL, source, progress * 2, 0.2F, 0.8F, 0.2F);
|
source.getWorld().spawnParticle(Particle.PORTAL, source, progress * 2, 0.2F, 0.8F, 0.2F);
|
||||||
source.getWorld().playSound(source, Sound.BLOCK_BEACON_AMBIENT, 1F, 0.6F);
|
source.getWorld().playSound(source, Sound.BLOCK_BEACON_AMBIENT, 1F, 0.6F);
|
||||||
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, () -> updateProgress(uuid, speed, progress + speed, source, destination, resistance), 10L);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, () -> updateProgress(uuid, speed, progress + speed, source, destination, resistance), 10L);
|
||||||
}
|
|
||||||
} catch (Exception x) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured during a Teleportation Sequence for Slimefun " + Slimefun.getVersion(), x);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else cancel(uuid, p);
|
else cancel(uuid, p);
|
||||||
|
@ -16,7 +16,7 @@ import org.bukkit.entity.Player;
|
|||||||
import io.github.thebusybiscuit.cscorelib2.data.PersistentDataAPI;
|
import io.github.thebusybiscuit.cscorelib2.data.PersistentDataAPI;
|
||||||
import io.github.thebusybiscuit.slimefun4.api.events.ResearchUnlockEvent;
|
import io.github.thebusybiscuit.slimefun4.api.events.ResearchUnlockEvent;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.GuideSettings;
|
import io.github.thebusybiscuit.slimefun4.core.guide.GuideSettings;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.FireworkShow;
|
import io.github.thebusybiscuit.slimefun4.core.utils.FireworkUtils;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Setup.ResearchSetup;
|
import me.mrCookieSlime.Slimefun.Setup.ResearchSetup;
|
||||||
@ -218,7 +218,7 @@ public class Research {
|
|||||||
SlimefunPlugin.getLocal().sendMessage(p, "messages.unlocked", true, msg -> msg.replace("%research%", getName()));
|
SlimefunPlugin.getLocal().sendMessage(p, "messages.unlocked", true, msg -> msg.replace("%research%", getName()));
|
||||||
|
|
||||||
if (SlimefunPlugin.getSettings().researchFireworksEnabled && (!PersistentDataAPI.hasByte(p, GuideSettings.FIREWORKS_KEY) || PersistentDataAPI.getByte(p, GuideSettings.FIREWORKS_KEY) == (byte) 1)) {
|
if (SlimefunPlugin.getSettings().researchFireworksEnabled && (!PersistentDataAPI.hasByte(p, GuideSettings.FIREWORKS_KEY) || PersistentDataAPI.getByte(p, GuideSettings.FIREWORKS_KEY) == (byte) 1)) {
|
||||||
FireworkShow.launchRandom(p, 1);
|
FireworkUtils.launchRandom(p, 1);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem;
|
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
|
||||||
|
|
||||||
public class ExcludedBlock extends SlimefunItem implements NotPlaceable {
|
|
||||||
|
|
||||||
public ExcludedBlock(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
|
|
||||||
super(category, item, id, recipeType, recipe);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem;
|
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
|
||||||
|
|
||||||
public class ExcludedGadget extends SlimefunGadget implements NotPlaceable {
|
|
||||||
|
|
||||||
public ExcludedGadget(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack[] machineRecipes) {
|
|
||||||
super(category, item, id, recipeType, recipe, machineRecipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExcludedGadget(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack[] machineRecipes, String[] keys, Object[] values) {
|
|
||||||
super(category, item, id, recipeType, recipe, machineRecipes, keys, values);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem;
|
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public class ExcludedTool extends SlimefunItem implements NotPlaceable {
|
|
||||||
|
|
||||||
public ExcludedTool(Category category, ItemStack item, String id,RecipeType recipeType, ItemStack[] recipe) {
|
|
||||||
super(category, item, id, recipeType, recipe);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -7,13 +7,13 @@ import me.mrCookieSlime.Slimefun.Objects.Category;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
||||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
|
|
||||||
public class ExcludedSoulboundTool extends SoulboundItem implements NotPlaceable {
|
public class SoulboundTool extends SoulboundItem implements NotPlaceable {
|
||||||
|
|
||||||
public ExcludedSoulboundTool(Category category, ItemStack item, String id, RecipeType type, ItemStack[] recipe) {
|
public SoulboundTool(Category category, ItemStack item, String id, RecipeType type, ItemStack[] recipe) {
|
||||||
super(category, item, id, type, recipe);
|
super(category, item, id, type, recipe);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcludedSoulboundTool(Category category, SlimefunItemStack item, ItemStack[] recipe) {
|
public SoulboundTool(Category category, SlimefunItemStack item, ItemStack[] recipe) {
|
||||||
super(category, item, recipe);
|
super(category, item, recipe);
|
||||||
}
|
}
|
||||||
|
|
@ -16,7 +16,7 @@ import org.bukkit.event.player.PlayerEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -11,11 +11,11 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
@ -82,18 +82,18 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
|||||||
|
|
||||||
protected void constructMenu(BlockMenuPreset preset) {
|
protected void constructMenu(BlockMenuPreset preset) {
|
||||||
for (int i : BORDER) {
|
for (int i : BORDER) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i : BORDER_IN) {
|
for (int i : BORDER_IN) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i : BORDER_OUT) {
|
for (int i : BORDER_OUT) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
|
|
||||||
for (int i : getOutputSlots()) {
|
for (int i : getOutputSlots()) {
|
||||||
preset.addMenuClickHandler(i, new AdvancedMenuClickHandler() {
|
preset.addMenuClickHandler(i, new AdvancedMenuClickHandler() {
|
||||||
@ -227,7 +227,7 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
|||||||
if (!fits(b, r.getOutput())) return;
|
if (!fits(b, r.getOutput())) return;
|
||||||
|
|
||||||
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
||||||
inv.replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(inv.getItemInSlot(entry.getKey()), entry.getValue()));
|
inv.consumeItem(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
|
@ -7,6 +7,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
@ -45,17 +46,17 @@ public abstract class ADrill extends AContainer {
|
|||||||
private void constructMenu(BlockMenuPreset preset) {
|
private void constructMenu(BlockMenuPreset preset) {
|
||||||
for (int i : border) {
|
for (int i : border) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "),
|
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "),
|
||||||
(p, slot, item, action) -> false
|
ChestMenuUtils.getEmptyClickHandler()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
for (int i : border_out) {
|
for (int i : border_out) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "),
|
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "),
|
||||||
(p, slot, item, action) -> false
|
ChestMenuUtils.getEmptyClickHandler()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "),
|
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "),
|
||||||
(p, slot, item, action) -> false
|
ChestMenuUtils.getEmptyClickHandler()
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int i: getOutputSlots()) {
|
for (int i: getOutputSlots()) {
|
||||||
|
@ -7,11 +7,12 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
@ -66,14 +67,14 @@ public abstract class AFarm extends SlimefunItem {
|
|||||||
|
|
||||||
private void constructMenu(BlockMenuPreset preset) {
|
private void constructMenu(BlockMenuPreset preset) {
|
||||||
for (int i : border) {
|
for (int i : border) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i : border_out) {
|
for (int i : border_out) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
|
|
||||||
for (int i : getOutputSlots()) {
|
for (int i : getOutputSlots()) {
|
||||||
preset.addMenuClickHandler(i, new AdvancedMenuClickHandler() {
|
preset.addMenuClickHandler(i, new AdvancedMenuClickHandler() {
|
||||||
|
@ -16,13 +16,13 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
@ -107,15 +107,15 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
|||||||
|
|
||||||
private void constructMenu(BlockMenuPreset preset) {
|
private void constructMenu(BlockMenuPreset preset) {
|
||||||
for (int i : border) {
|
for (int i : border) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i : border_in) {
|
for (int i : border_in) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "),(p, slot, item, action) -> false);
|
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "),ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i: border_out) {
|
for (int i: border_out) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i: getOutputSlots()) {
|
for (int i: getOutputSlots()) {
|
||||||
@ -133,7 +133,7 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract String getInventoryTitle();
|
public abstract String getInventoryTitle();
|
||||||
@ -205,8 +205,8 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
|||||||
MachineFuel fuel = findRecipe(inv, found);
|
MachineFuel fuel = findRecipe(inv, found);
|
||||||
|
|
||||||
if (fuel != null) {
|
if (fuel != null) {
|
||||||
for (Map.Entry<Integer, Integer> entry: found.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
||||||
inv.replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(inv.getItemInSlot(entry.getKey()), entry.getValue()));
|
inv.consumeItem(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
processing.put(l, fuel);
|
processing.put(l, fuel);
|
||||||
|
@ -17,13 +17,12 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import io.github.thebusybiscuit.cscorelib2.skull.SkullItem;
|
import io.github.thebusybiscuit.cscorelib2.skull.SkullItem;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
@ -289,7 +288,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
|||||||
|
|
||||||
for (int slot : getCoolantSlots()) {
|
for (int slot : getCoolantSlots()) {
|
||||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), getCoolant(), true)) {
|
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), getCoolant(), true)) {
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
ReactorHologram.update(l, "&b\u2744 &7100%");
|
ReactorHologram.update(l, "&b\u2744 &7100%");
|
||||||
explosion = false;
|
explosion = false;
|
||||||
break;
|
break;
|
||||||
@ -339,7 +338,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
|||||||
|
|
||||||
if (fuel != null) {
|
if (fuel != null) {
|
||||||
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
||||||
menu.replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(menu.getItemInSlot(entry.getKey()), entry.getValue()));
|
menu.consumeItem(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
processing.put(l, fuel);
|
processing.put(l, fuel);
|
||||||
|
@ -9,8 +9,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
|
@ -3,7 +3,7 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
@ -5,7 +5,7 @@ import org.bukkit.Sound;
|
|||||||
import org.bukkit.block.Container;
|
import org.bukkit.block.Container;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||||
|
@ -8,9 +8,9 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.blocks.Vein;
|
import io.github.thebusybiscuit.cscorelib2.blocks.Vein;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections;
|
import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem;
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items;
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
|
|
||||||
public class SolarHelmet extends SlimefunItem {
|
public class SolarHelmet extends SlimefunItem {
|
@ -81,7 +81,8 @@ public class StormStaff extends SimpleSlimefunItem<ItemInteractionHandler> {
|
|||||||
if (currentUses == 1) {
|
if (currentUses == 1) {
|
||||||
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1);
|
p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1);
|
||||||
item.setAmount(0);
|
item.setAmount(0);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
itemMeta.getPersistentDataContainer().set(
|
itemMeta.getPersistentDataContainer().set(
|
||||||
usageKey, PersistentDataType.INTEGER, --currentUses
|
usageKey, PersistentDataType.INTEGER, --currentUses
|
||||||
);
|
);
|
||||||
|
@ -6,8 +6,8 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
|
@ -4,8 +4,9 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
@ -18,7 +19,8 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
|||||||
|
|
||||||
public class TrashCan extends SlimefunItem implements InventoryBlock {
|
public class TrashCan extends SlimefunItem implements InventoryBlock {
|
||||||
|
|
||||||
private static final int[] border = {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
|
private static final int[] BORDER = {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
|
||||||
|
private static final ItemStack BACKGROUND = new CustomItem(new ItemStack(Material.RED_STAINED_GLASS_PANE), " ");
|
||||||
|
|
||||||
public TrashCan(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
public TrashCan(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||||
super(category, item, recipeType, recipe);
|
super(category, item, recipeType, recipe);
|
||||||
@ -26,8 +28,8 @@ public class TrashCan extends SlimefunItem implements InventoryBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void constructMenu(BlockMenuPreset preset) {
|
private void constructMenu(BlockMenuPreset preset) {
|
||||||
for (int i : border) {
|
for (int i : BORDER) {
|
||||||
preset.addItem(i, new CustomItem(new ItemStack(Material.RED_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
|
preset.addItem(i, BACKGROUND, ChestMenuUtils.getEmptyClickHandler());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,7 @@ import org.bukkit.Tag;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
@ -146,7 +145,8 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
|||||||
if (r != null) {
|
if (r != null) {
|
||||||
if (inputSlot == -1) return;
|
if (inputSlot == -1) return;
|
||||||
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||||
menu.replaceExistingItem(inputSlot, InvUtils.decreaseItem(menu.getItemInSlot(inputSlot), 1));
|
|
||||||
|
menu.consumeItem(inputSlot);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,7 @@ import org.bukkit.enchantments.Enchantment;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants;
|
import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants;
|
||||||
import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
|
import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
@ -128,8 +127,8 @@ public class AutoEnchanter extends AContainer {
|
|||||||
if (recipe != null) {
|
if (recipe != null) {
|
||||||
if (!fits(b, recipe.getOutput())) return;
|
if (!fits(b, recipe.getOutput())) return;
|
||||||
|
|
||||||
for (int slot: getInputSlots()) {
|
for (int slot : getInputSlots()) {
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
processing.put(b, recipe);
|
processing.put(b, recipe);
|
||||||
|
@ -3,7 +3,7 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
@ -9,10 +9,10 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.data.Ageable;
|
import org.bukkit.block.data.Ageable;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
import io.github.thebusybiscuit.slimefun4.core.utils.ChestMenuUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
@ -6,8 +6,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
@ -85,7 +84,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
|||||||
ItemStack adding = items[new Random().nextInt(items.length)];
|
ItemStack adding = items[new Random().nextInt(items.length)];
|
||||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {adding});
|
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {adding});
|
||||||
if (SlimefunPlugin.getSettings().legacyDustWasher && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
if (SlimefunPlugin.getSettings().legacyDustWasher && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
break;
|
break;
|
||||||
@ -93,7 +92,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
|||||||
else if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
else if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
||||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER});
|
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER});
|
||||||
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
break;
|
break;
|
||||||
|
@ -8,8 +8,7 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet;
|
import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
@ -122,7 +121,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
|||||||
MachineRecipe r = new MachineRecipe(3 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
MachineRecipe r = new MachineRecipe(3 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||||
if (!menu.fits(output, getOutputSlots())) return;
|
if (!menu.fits(output, getOutputSlots())) return;
|
||||||
|
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
break;
|
break;
|
||||||
@ -133,7 +132,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
|||||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||||
if (!menu.fits(output, getOutputSlots())) return;
|
if (!menu.fits(output, getOutputSlots())) return;
|
||||||
|
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
break;
|
break;
|
||||||
|
@ -11,10 +11,10 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
@ -10,13 +10,13 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.blocks.Vein;
|
import io.github.thebusybiscuit.cscorelib2.blocks.Vein;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
|
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
|
||||||
@ -27,7 +27,7 @@ import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
|||||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
||||||
|
|
||||||
public class FluidPump extends SlimefunItem implements InventoryBlock {
|
public class FluidPump extends SimpleSlimefunItem<BlockTicker> implements InventoryBlock {
|
||||||
|
|
||||||
private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 13, 31, 36, 37, 38, 39, 40, 41, 42, 43, 44, 22};
|
private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 13, 31, 36, 37, 38, 39, 40, 41, 42, 43, 44, 22};
|
||||||
private static final int[] border_in = {9, 10, 11, 12, 18, 21, 27, 28, 29, 30};
|
private static final int[] border_in = {9, 10, 11, 12, 18, 21, 27, 28, 29, 30};
|
||||||
@ -98,7 +98,7 @@ public class FluidPump extends SlimefunItem implements InventoryBlock {
|
|||||||
if (!menu.fits(output, getOutputSlots())) return;
|
if (!menu.fits(output, getOutputSlots())) return;
|
||||||
|
|
||||||
ChargableBlock.addCharge(b, -energyConsumption);
|
ChargableBlock.addCharge(b, -energyConsumption);
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
menu.consumeItem(slot);
|
||||||
menu.pushItem(output, getOutputSlots());
|
menu.pushItem(output, getOutputSlots());
|
||||||
|
|
||||||
if (fluid.getType() == Material.WATER) {
|
if (fluid.getType() == Material.WATER) {
|
||||||
@ -116,8 +116,8 @@ public class FluidPump extends SlimefunItem implements InventoryBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preRegister() {
|
public BlockTicker getItemHandler() {
|
||||||
addItemHandler(new BlockTicker() {
|
return new BlockTicker() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(Block b, SlimefunItem sf, Config data) {
|
public void tick(Block b, SlimefunItem sf, Config data) {
|
||||||
@ -128,7 +128,7 @@ public class FluidPump extends SlimefunItem implements InventoryBlock {
|
|||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,9 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
@ -172,7 +171,7 @@ public abstract class HeatedPressureChamber extends AContainer {
|
|||||||
if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return;
|
if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return;
|
||||||
|
|
||||||
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : found.entrySet()) {
|
||||||
menu.replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(menu.getItemInSlot(entry.getKey()), entry.getValue()));
|
menu.consumeItem(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
processing.put(b, recipe);
|
processing.put(b, recipe);
|
||||||
|
@ -7,8 +7,8 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
@ -81,7 +81,7 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem {
|
|||||||
|
|
||||||
if (!menu.fits(SlimefunItems.BUCKET_OF_FUEL, getOutputSlots())) return;
|
if (!menu.fits(SlimefunItems.BUCKET_OF_FUEL, getOutputSlots())) return;
|
||||||
|
|
||||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
ItemUtils.consumeItem(menu.getItemInSlot(slot), false);
|
||||||
processing.put(b, r);
|
processing.put(b, r);
|
||||||
progress.put(b, r.getTicks());
|
progress.put(b, r.getTicks());
|
||||||
break;
|
break;
|
||||||
|
@ -11,7 +11,6 @@ import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
|||||||
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
||||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
@ -190,9 +189,11 @@ public class WitherAssembler extends SlimefunItem {
|
|||||||
int soulsand = 0;
|
int soulsand = 0;
|
||||||
int skulls = 0;
|
int skulls = 0;
|
||||||
|
|
||||||
|
BlockMenu menu = BlockStorage.getInventory(b);
|
||||||
|
|
||||||
for (int slot : getSoulSandSlots()) {
|
for (int slot : getSoulSandSlots()) {
|
||||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||||
soulsand = soulsand + BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
soulsand = soulsand + menu.getItemInSlot(slot).getAmount();
|
||||||
if (soulsand > 3) {
|
if (soulsand > 3) {
|
||||||
soulsand = 4;
|
soulsand = 4;
|
||||||
break;
|
break;
|
||||||
@ -201,8 +202,8 @@ public class WitherAssembler extends SlimefunItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int slot : getWitherSkullSlots()) {
|
for (int slot : getWitherSkullSlots()) {
|
||||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||||
skulls = skulls + BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
skulls = skulls + menu.getItemInSlot(slot).getAmount();
|
||||||
if (skulls > 2) {
|
if (skulls > 2) {
|
||||||
skulls = 3;
|
skulls = 3;
|
||||||
break;
|
break;
|
||||||
@ -212,31 +213,31 @@ public class WitherAssembler extends SlimefunItem {
|
|||||||
|
|
||||||
if (soulsand > 3 && skulls > 2) {
|
if (soulsand > 3 && skulls > 2) {
|
||||||
for (int slot : getSoulSandSlots()) {
|
for (int slot : getSoulSandSlots()) {
|
||||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||||
int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
int amount = menu.getItemInSlot(slot).getAmount();
|
||||||
|
|
||||||
if (amount >= soulsand) {
|
if (amount >= soulsand) {
|
||||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), soulsand));
|
menu.consumeItem(slot, soulsand);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
soulsand = soulsand - amount;
|
soulsand = soulsand - amount;
|
||||||
BlockStorage.getInventory(b).replaceExistingItem(slot, null);
|
menu.replaceExistingItem(slot, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int slot : getWitherSkullSlots()) {
|
for (int slot : getWitherSkullSlots()) {
|
||||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||||
int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
int amount = menu.getItemInSlot(slot).getAmount();
|
||||||
|
|
||||||
if (amount >= skulls) {
|
if (amount >= skulls) {
|
||||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), skulls));
|
menu.consumeItem(slot, skulls);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
skulls = skulls - amount;
|
skulls = skulls - amount;
|
||||||
BlockStorage.getInventory(b).replaceExistingItem(slot, null);
|
menu.replaceExistingItem(slot, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ import org.bukkit.entity.ExperienceOrb;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
|
import me.mrCookieSlime.Slimefun.holograms.ReactorHologram;
|
||||||
|
|
||||||
|
public abstract class NetherStarReactor extends AReactor {
|
||||||
|
|
||||||
|
public NetherStarReactor(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||||
|
super(category, item, recipeType, recipe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInventoryTitle() {
|
||||||
|
return "&fNether Star Reactor";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerDefaultRecipes() {
|
||||||
|
registerFuel(new MachineFuel(1800, new ItemStack(Material.NETHER_STAR)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void extraTick(final Location l) {
|
||||||
|
Slimefun.runSync(() -> {
|
||||||
|
for (Entity entity : ReactorHologram.getArmorStand(l, true).getNearbyEntities(5, 5, 5)) {
|
||||||
|
if (entity instanceof LivingEntity) {
|
||||||
|
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 0L);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getCoolant() {
|
||||||
|
return SlimefunItems.NETHER_ICE_COOLANT_CELL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getProgressBar() {
|
||||||
|
return new ItemStack(Material.NETHER_STAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.skull.SkullItem;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
|
|
||||||
|
public abstract class NuclearReactor extends AReactor {
|
||||||
|
|
||||||
|
public NuclearReactor(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||||
|
super(category, item, recipeType, recipe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInventoryTitle() {
|
||||||
|
return "&2Nuclear Reactor";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerDefaultRecipes() {
|
||||||
|
registerFuel(new MachineFuel(1200, SlimefunItems.URANIUM, SlimefunItems.NEPTUNIUM));
|
||||||
|
registerFuel(new MachineFuel(600, SlimefunItems.NEPTUNIUM, SlimefunItems.PLUTONIUM));
|
||||||
|
registerFuel(new MachineFuel(1500, SlimefunItems.BOOSTED_URANIUM, null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getProgressBar() {
|
||||||
|
return SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ==");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getCoolant() {
|
||||||
|
return SlimefunItems.REACTOR_COOLANT_CELL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void extraTick(Location l) {
|
||||||
|
// This machine does not need to perform anything while ticking
|
||||||
|
// The Nether Star Reactor uses this method to generate the Wither Effect
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,7 +13,7 @@ import org.bukkit.inventory.Inventory;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
@ -51,7 +51,7 @@ public class ArmorForge extends MultiBlockMachine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (craft) {
|
if (craft) {
|
||||||
final ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
|
ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
|
||||||
|
|
||||||
if (Slimefun.hasUnlocked(p, adding, true)) {
|
if (Slimefun.hasUnlocked(p, adding, true)) {
|
||||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||||
|
@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
@ -50,7 +50,7 @@ public class Compressor extends MultiBlockMachine {
|
|||||||
for (ItemStack current : inv.getContents()) {
|
for (ItemStack current : inv.getContents()) {
|
||||||
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
|
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
|
||||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||||
final ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
||||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||||
|
|
||||||
if (outputInv != null) {
|
if (outputInv != null) {
|
||||||
|
@ -16,8 +16,8 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListener;
|
import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListener;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
@ -71,7 +71,7 @@ public class EnhancedCraftingTable extends MultiBlockMachine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (craft) {
|
if (craft) {
|
||||||
final ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
|
ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
|
||||||
if (Slimefun.hasUnlocked(p, adding, true)) {
|
if (Slimefun.hasUnlocked(p, adding, true)) {
|
||||||
Inventory inv2 = Bukkit.createInventory(null, 9, "test");
|
Inventory inv2 = Bukkit.createInventory(null, 9, "test");
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -16,8 +16,8 @@ import org.bukkit.inventory.Inventory;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListener;
|
import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListener;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -20,7 +20,7 @@ import org.bukkit.inventory.meta.Damageable;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
@ -10,16 +10,17 @@ import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
|
|||||||
|
|
||||||
public class RainbowTicker extends BlockTicker {
|
public class RainbowTicker extends BlockTicker {
|
||||||
|
|
||||||
|
private final int[] sequence;
|
||||||
|
|
||||||
private int meta;
|
private int meta;
|
||||||
private int index;
|
private int index;
|
||||||
private int[] queue;
|
|
||||||
|
|
||||||
public RainbowTicker() {
|
public RainbowTicker() {
|
||||||
this(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
|
this(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RainbowTicker(int... data) {
|
public RainbowTicker(int... data) {
|
||||||
this.queue = data;
|
this.sequence = data;
|
||||||
meta = data[0];
|
meta = data[0];
|
||||||
index = 0;
|
index = 0;
|
||||||
}
|
}
|
||||||
@ -49,8 +50,8 @@ public class RainbowTicker extends BlockTicker {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void uniqueTick() {
|
public void uniqueTick() {
|
||||||
index = ((index >= queue.length - 1) ? 0: index + 1);
|
index = ((index >= sequence.length - 1) ? 0: index + 1);
|
||||||
meta = queue[index];
|
meta = sequence[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@ -19,7 +18,6 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.Chest;
|
import org.bukkit.block.Chest;
|
||||||
import org.bukkit.block.CreatureSpawner;
|
import org.bukkit.block.CreatureSpawner;
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -32,14 +30,14 @@ import org.bukkit.potion.PotionEffectType;
|
|||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections;
|
||||||
import io.github.thebusybiscuit.cscorelib2.skull.SkullItem;
|
import io.github.thebusybiscuit.cscorelib2.skull.SkullItem;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.FireworkUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
|
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent;
|
import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.FireworkShow;
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
@ -47,8 +45,7 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.MultiBlock;
|
import me.mrCookieSlime.Slimefun.Objects.MultiBlock;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Alloy;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Alloy;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ExcludedBlock;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.HandledBlock;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ExcludedSoulboundTool;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.JetBoots;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.JetBoots;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Jetpack;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Jetpack;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice;
|
||||||
@ -60,14 +57,12 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBackpack;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SolarHelmet;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundBackpack;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundBackpack;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundItem;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundTool;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.Teleporter;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.Teleporter;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.AdvancedCargoOutputNode;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.AdvancedCargoOutputNode;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoInputNode;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoInputNode;
|
||||||
@ -100,6 +95,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.PortableDustbin;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.PortableGEOScanner;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.PortableGEOScanner;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SeismicAxe;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SeismicAxe;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SmeltersPickaxe;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SmeltersPickaxe;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SolarHelmet;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SoulboundRune;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SoulboundRune;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.StormStaff;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.StormStaff;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading;
|
||||||
@ -153,6 +149,8 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOS
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilPump;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilPump;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors.NetherStarReactor;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.reactors.NuclearReactor;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.ArmorForge;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.ArmorForge;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.AutomatedPanningMachine;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.AutomatedPanningMachine;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Compressor;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Compressor;
|
||||||
@ -177,7 +175,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet;
|
import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet;
|
||||||
import me.mrCookieSlime.Slimefun.holograms.ReactorHologram;
|
|
||||||
|
|
||||||
public final class SlimefunSetup {
|
public final class SlimefunSetup {
|
||||||
|
|
||||||
@ -1315,15 +1312,15 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_PICKAXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_PICKAXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new ExcludedSoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_AXE,
|
new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_AXE,
|
||||||
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_AXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_AXE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new ExcludedSoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_SHOVEL,
|
new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_SHOVEL,
|
||||||
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SHOVEL), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SHOVEL), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new ExcludedSoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_HOE,
|
new SoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_HOE,
|
||||||
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HOE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HOE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
@ -1468,7 +1465,7 @@ public final class SlimefunSetup {
|
|||||||
|
|
||||||
new BlockPlacer(Categories.MACHINES_1, (SlimefunItemStack) SlimefunItems.BLOCK_PLACER, RecipeType.ENHANCED_CRAFTING_TABLE,
|
new BlockPlacer(Categories.MACHINES_1, (SlimefunItemStack) SlimefunItems.BLOCK_PLACER, RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON), SlimefunItems.GOLD_4K, new ItemStack(Material.IRON_INGOT), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.IRON_INGOT), SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON), SlimefunItems.GOLD_4K},
|
new ItemStack[] {SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON), SlimefunItems.GOLD_4K, new ItemStack(Material.IRON_INGOT), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.IRON_INGOT), SlimefunItems.GOLD_4K, new ItemStack(Material.PISTON), SlimefunItems.GOLD_4K},
|
||||||
new String[] {"unplaceable-blocks"}, new Object[] {Stream.of(Material.STRUCTURE_BLOCK, Material.COMMAND_BLOCK, Material.CHAIN_COMMAND_BLOCK, Material.REPEATING_COMMAND_BLOCK).map(Material::toString).collect(Collectors.toList())})
|
new String[] {"unplaceable-blocks"}, new Object[] {MaterialCollections.getAllUnbreakableBlocks().stream().map(Material::name).collect(Collectors.toList())})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new TelepositionScroll(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION, RecipeType.MAGIC_WORKBENCH,
|
new TelepositionScroll(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION, RecipeType.MAGIC_WORKBENCH,
|
||||||
@ -1518,7 +1515,7 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack[] {null, null, null, SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GLASS_PANE), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, null}, new CustomItem(SlimefunItems.FLASK_OF_KNOWLEDGE, 8))
|
new ItemStack[] {null, null, null, SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GLASS_PANE), SlimefunItems.MAGIC_LUMP_2, null, SlimefunItems.MAGIC_LUMP_2, null}, new CustomItem(SlimefunItems.FLASK_OF_KNOWLEDGE, 8))
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new ExcludedBlock(Categories.BIRTHDAY, new CustomItem(new ItemStack(Material.CAKE), "&bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new HandledBlock(Categories.BIRTHDAY, new CustomItem(new ItemStack(Material.CAKE), "&bBirthday Cake"), "BIRTHDAY_CAKE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null})
|
new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
@ -1591,7 +1588,7 @@ public final class SlimefunSetup {
|
|||||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.EASTER_EGG, true)) {
|
if (SlimefunManager.isItemSimilar(item, SlimefunItems.EASTER_EGG, true)) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||||
FireworkShow.launchRandom(e.getPlayer(), 2);
|
FireworkUtils.launchRandom(e.getPlayer(), 2);
|
||||||
|
|
||||||
List<ItemStack> gifts = new ArrayList<>();
|
List<ItemStack> gifts = new ArrayList<>();
|
||||||
gifts.add(new CustomItem(SlimefunItems.EASTER_CARROT_PIE, 4));
|
gifts.add(new CustomItem(SlimefunItems.EASTER_CARROT_PIE, 4));
|
||||||
@ -3013,88 +3010,24 @@ public final class SlimefunSetup {
|
|||||||
|
|
||||||
SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM);
|
SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM);
|
||||||
|
|
||||||
new AReactor(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.NUCLEAR_REACTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
new NuclearReactor(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.NUCLEAR_REACTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.REINFORCED_PLATE, SlimefunItems.COOLING_UNIT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT}){
|
new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.REINFORCED_PLATE, SlimefunItems.COOLING_UNIT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.LEAD_INGOT}){
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getInventoryTitle() {
|
|
||||||
return "&2Nuclear Reactor";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerDefaultRecipes() {
|
|
||||||
registerFuel(new MachineFuel(1200, SlimefunItems.URANIUM, SlimefunItems.NEPTUNIUM));
|
|
||||||
registerFuel(new MachineFuel(600, SlimefunItems.NEPTUNIUM, SlimefunItems.PLUTONIUM));
|
|
||||||
registerFuel(new MachineFuel(1500, SlimefunItems.BOOSTED_URANIUM, null));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyProduction() {
|
public int getEnergyProduction() {
|
||||||
return 250;
|
return 250;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
}.registerChargeableBlock(true, 16384);
|
||||||
public ItemStack getProgressBar() {
|
|
||||||
try {
|
|
||||||
return CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTNhZDhlZTg0OWVkZjA0ZWQ5YTI2Y2EzMzQxZjYwMzNiZDc2ZGNjNDIzMWVkMWVhNjNiNzU2NTc1MWIyN2FjIn19fQ==");
|
|
||||||
} catch (Exception e) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while creating the Progressbar of a Reactor for Slimefun " + Slimefun.getVersion());
|
|
||||||
return new ItemStack(Material.BLAZE_POWDER);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
new NetherStarReactor(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.NETHERSTAR_REACTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
public ItemStack getCoolant() {
|
|
||||||
return SlimefunItems.REACTOR_COOLANT_CELL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void extraTick(Location l) {
|
|
||||||
// This machine does not need to perform anything while ticking
|
|
||||||
// The Nether Star Reactor uses this method to generate the Wither Effect
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.registerChargeableBlock(true, 16384);
|
|
||||||
|
|
||||||
new AReactor(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.NETHERSTAR_REACTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
|
||||||
new ItemStack[]{SlimefunItems.BOOSTED_URANIUM, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BOOSTED_URANIUM, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.NETHER_STAR), SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
|
new ItemStack[]{SlimefunItems.BOOSTED_URANIUM, SlimefunItems.CARBONADO_EDGED_CAPACITOR, SlimefunItems.BOOSTED_URANIUM, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.NETHER_STAR), SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getInventoryTitle() {
|
|
||||||
return "&fNether Star Reactor";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerDefaultRecipes() {
|
|
||||||
registerFuel(new MachineFuel(1800, new ItemStack(Material.NETHER_STAR)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyProduction() {
|
public int getEnergyProduction() {
|
||||||
return 512;
|
return 512;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void extraTick(final Location l) {
|
|
||||||
Slimefun.runSync(() -> {
|
|
||||||
for (Entity entity : ReactorHologram.getArmorStand(l, true).getNearbyEntities(5, 5, 5)) {
|
|
||||||
if (entity instanceof LivingEntity) {
|
|
||||||
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 0L);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getCoolant() {
|
|
||||||
return SlimefunItems.NETHER_ICE_COOLANT_CELL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getProgressBar() {
|
|
||||||
return new ItemStack(Material.NETHER_STAR);
|
|
||||||
}
|
|
||||||
|
|
||||||
}.registerChargeableBlock(true, 32768);
|
}.registerChargeableBlock(true, 32768);
|
||||||
|
|
||||||
new SlimefunItem(Categories.CARGO, (SlimefunItemStack) SlimefunItems.CARGO_MOTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
new SlimefunItem(Categories.CARGO, (SlimefunItemStack) SlimefunItems.CARGO_MOTOR, RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
@ -3147,7 +3080,7 @@ public final class SlimefunSetup {
|
|||||||
|
|
||||||
}.registerChargeableBlock(true, 256);
|
}.registerChargeableBlock(true, 256);
|
||||||
|
|
||||||
new ReactorAccessPort(Categories.ELECTRICITY, SlimefunItems.REACTOR_ACCESS_PORT, "REACTOR_ACCESS_PORT", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new ReactorAccessPort(Categories.CARGO, SlimefunItems.REACTOR_ACCESS_PORT, "REACTOR_ACCESS_PORT", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.LEAD_INGOT, SlimefunItems.CARGO_MOTOR, SlimefunItems.LEAD_INGOT, null, SlimefunItems.ELECTRIC_MOTOR, null})
|
new ItemStack[] {null, SlimefunItems.BLISTERING_INGOT_3, null, SlimefunItems.LEAD_INGOT, SlimefunItems.CARGO_MOTOR, SlimefunItems.LEAD_INGOT, null, SlimefunItems.ELECTRIC_MOTOR, null})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.BookSlimefunGuide;
|
import io.github.thebusybiscuit.slimefun4.core.guide.BookSlimefunGuide;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.ChestSlimefunGuide;
|
import io.github.thebusybiscuit.slimefun4.core.guide.ChestSlimefunGuide;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.ISlimefunGuide;
|
import io.github.thebusybiscuit.slimefun4.core.guide.ISlimefunGuide;
|
||||||
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||||
|
@ -8,6 +8,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
@ -26,24 +27,25 @@ import org.bukkit.metadata.FixedMetadataValue;
|
|||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
|
||||||
|
|
||||||
public class AncientAltarListener implements Listener {
|
public class AncientAltarListener implements Listener {
|
||||||
|
|
||||||
private Utilities utilities;
|
private final Set<Location> altarsInUse = new HashSet<>();
|
||||||
|
|
||||||
private final List<Block> altars = new ArrayList<>();
|
private final List<Block> altars = new ArrayList<>();
|
||||||
private final Set<UUID> removedItems = new HashSet<>();
|
private final Set<UUID> removedItems = new HashSet<>();
|
||||||
|
|
||||||
public AncientAltarListener(SlimefunPlugin plugin) {
|
public AncientAltarListener(SlimefunPlugin plugin) {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
}
|
||||||
|
|
||||||
utilities = SlimefunPlugin.getUtilities();
|
public Set<Location> getAltarsInUse() {
|
||||||
|
return altarsInUse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
@ -56,7 +58,7 @@ public class AncientAltarListener implements Listener {
|
|||||||
if (item.equals("ANCIENT_PEDESTAL")) {
|
if (item.equals("ANCIENT_PEDESTAL")) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
|
|
||||||
if (utilities.altarinuse.contains(b.getLocation())) {
|
if (altarsInUse.contains(b.getLocation())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,13 +86,13 @@ public class AncientAltarListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (item.equals("ANCIENT_ALTAR")) {
|
else if (item.equals("ANCIENT_ALTAR")) {
|
||||||
if (!Slimefun.hasUnlocked(e.getPlayer(), SlimefunItems.ANCIENT_ALTAR, true) || utilities.altarinuse.contains(b.getLocation())) {
|
if (!Slimefun.hasUnlocked(e.getPlayer(), SlimefunItems.ANCIENT_ALTAR, true) || altarsInUse.contains(b.getLocation())) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make altarinuse simply because that was the last block clicked.
|
// Make altarinuse simply because that was the last block clicked.
|
||||||
utilities.altarinuse.add(b.getLocation());
|
altarsInUse.add(b.getLocation());
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
|
|
||||||
ItemStack catalyst = new CustomItem(e.getPlayer().getInventory().getItemInMainHand(), 1);
|
ItemStack catalyst = new CustomItem(e.getPlayer().getInventory().getItemInMainHand(), 1);
|
||||||
@ -99,7 +101,7 @@ public class AncientAltarListener implements Listener {
|
|||||||
if (!altars.contains(e.getClickedBlock())) {
|
if (!altars.contains(e.getClickedBlock())) {
|
||||||
altars.add(e.getClickedBlock());
|
altars.add(e.getClickedBlock());
|
||||||
if (pedestals.size() == 8) {
|
if (pedestals.size() == 8) {
|
||||||
pedestals.forEach(block -> utilities.altarinuse.add(block.getLocation()));
|
pedestals.forEach(block -> altarsInUse.add(block.getLocation()));
|
||||||
|
|
||||||
if (catalyst.getType() != Material.AIR) {
|
if (catalyst.getType() != Material.AIR) {
|
||||||
List<ItemStack> input = new ArrayList<>();
|
List<ItemStack> input = new ArrayList<>();
|
||||||
@ -118,35 +120,35 @@ public class AncientAltarListener implements Listener {
|
|||||||
ItemUtils.consumeItem(e.getPlayer().getInventory().getItemInMainHand(), false);
|
ItemUtils.consumeItem(e.getPlayer().getInventory().getItemInMainHand(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Slimefun.runSync(new RitualAnimation(altars, b, b.getLocation().add(0.5, 1.3, 0.5), result, pedestals, consumed), 10L);
|
Slimefun.runSync(new RitualAnimation(this, altars, b, b.getLocation().add(0.5, 1.3, 0.5), result, pedestals, consumed), 10L);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
altars.remove(e.getClickedBlock());
|
altars.remove(e.getClickedBlock());
|
||||||
|
|
||||||
pedestals.forEach(block -> utilities.altarinuse.remove(block.getLocation()));
|
pedestals.forEach(block -> altarsInUse.remove(block.getLocation()));
|
||||||
|
|
||||||
// Item not unlocked, no longer in use.
|
// Item not unlocked, no longer in use.
|
||||||
utilities.altarinuse.remove(b.getLocation());
|
altarsInUse.remove(b.getLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
altars.remove(e.getClickedBlock());
|
altars.remove(e.getClickedBlock());
|
||||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-recipe", true);
|
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-recipe", true);
|
||||||
|
|
||||||
pedestals.forEach(block -> utilities.altarinuse.remove(block.getLocation()));
|
pedestals.forEach(block -> altarsInUse.remove(block.getLocation()));
|
||||||
|
|
||||||
// Bad recipe, no longer in use.
|
// Bad recipe, no longer in use.
|
||||||
utilities.altarinuse.remove(b.getLocation());
|
altarsInUse.remove(b.getLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
altars.remove(e.getClickedBlock());
|
altars.remove(e.getClickedBlock());
|
||||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-catalyst", true);
|
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.unknown-catalyst", true);
|
||||||
|
|
||||||
pedestals.forEach(block -> utilities.altarinuse.remove(block.getLocation()));
|
pedestals.forEach(block -> altarsInUse.remove(block.getLocation()));
|
||||||
|
|
||||||
// Unknown catalyst, no longer in use
|
// Unknown catalyst, no longer in use
|
||||||
utilities.altarinuse.remove(b.getLocation());
|
altarsInUse.remove(b.getLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -154,7 +156,7 @@ public class AncientAltarListener implements Listener {
|
|||||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.not-enough-pedestals", true, msg -> msg.replace("%pedestals%", String.valueOf(pedestals.size())));
|
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.ANCIENT_ALTAR.not-enough-pedestals", true, msg -> msg.replace("%pedestals%", String.valueOf(pedestals.size())));
|
||||||
|
|
||||||
// Not a valid altar so remove from inuse
|
// Not a valid altar so remove from inuse
|
||||||
utilities.altarinuse.remove(b.getLocation());
|
altarsInUse.remove(b.getLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
package me.mrCookieSlime.Slimefun.ancient_altar;
|
package me.mrCookieSlime.Slimefun.ancient_altar;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
|
||||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
|
||||||
|
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -19,32 +15,36 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.entity.Item;
|
import org.bukkit.entity.Item;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
|
|
||||||
public class RitualAnimation implements Runnable {
|
public class RitualAnimation implements Runnable {
|
||||||
|
|
||||||
private List<Block> altars;
|
private final AncientAltarListener listener;
|
||||||
|
|
||||||
private Block altar;
|
private final List<Block> altars;
|
||||||
private Location l;
|
|
||||||
private ItemStack output;
|
|
||||||
private List<Block> pedestals;
|
|
||||||
private List<ItemStack> items;
|
|
||||||
|
|
||||||
private List<Location> particles;
|
private final Block altar;
|
||||||
private Map<Item, Location> itemLock = new HashMap<>();
|
private final Location dropLocation;
|
||||||
|
private final ItemStack output;
|
||||||
|
private final List<Block> pedestals;
|
||||||
|
private final List<ItemStack> items;
|
||||||
|
|
||||||
|
private final Collection<Location> particleLocations = new LinkedList<>();
|
||||||
|
private final Map<Item, Location> itemLock = new HashMap<>();
|
||||||
|
|
||||||
private boolean running;
|
private boolean running;
|
||||||
private int stage;
|
private int stage;
|
||||||
|
|
||||||
private Utilities utilities = SlimefunPlugin.getUtilities();
|
public RitualAnimation(AncientAltarListener listener, List<Block> altars, Block altar, Location drop, ItemStack output, List<Block> pedestals, List<ItemStack> items) {
|
||||||
|
this.listener = listener;
|
||||||
|
|
||||||
public RitualAnimation(List<Block> altars, Block altar, Location drop, ItemStack output, List<Block> pedestals, List<ItemStack> items) {
|
this.dropLocation = drop;
|
||||||
this.l = drop;
|
|
||||||
this.altar = altar;
|
this.altar = altar;
|
||||||
this.altars = altars;
|
this.altars = altars;
|
||||||
this.output = output;
|
this.output = output;
|
||||||
this.pedestals = pedestals;
|
this.pedestals = pedestals;
|
||||||
this.items = items;
|
this.items = items;
|
||||||
this.particles = new ArrayList<>();
|
|
||||||
|
|
||||||
this.running = true;
|
this.running = true;
|
||||||
this.stage = 0;
|
this.stage = 0;
|
||||||
@ -74,7 +74,7 @@ public class RitualAnimation implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.stage += 1;
|
this.stage += 1;
|
||||||
SlimefunPlugin.instance.getServer().getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, this, 8);
|
Slimefun.runSync(this, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkLockedItems() {
|
private boolean checkLockedItems() {
|
||||||
@ -88,16 +88,12 @@ public class RitualAnimation implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void idle() {
|
private void idle() {
|
||||||
try {
|
dropLocation.getWorld().spawnParticle(Particle.SPELL_WITCH, dropLocation,16, 1.2F, 0F, 1.2F);
|
||||||
l.getWorld().spawnParticle(Particle.SPELL_WITCH, l,16, 1.2F, 0F, 1.2F);
|
dropLocation.getWorld().spawnParticle(Particle.FIREWORKS_SPARK,dropLocation,8, 0.2F, 0F, 0.2F);
|
||||||
l.getWorld().spawnParticle(Particle.FIREWORKS_SPARK,l,8, 0.2F, 0F, 0.2F);
|
|
||||||
|
|
||||||
for (Location l2 : particles) {
|
for (Location loc : particleLocations) {
|
||||||
l.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE, l2,16, 0.3F, 0.2F, 0.3F);
|
dropLocation.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE, loc,16, 0.3F, 0.2F, 0.3F);
|
||||||
l.getWorld().spawnParticle(Particle.CRIT_MAGIC,l2,8, 0.3F, 0.2F, 0.3F);
|
dropLocation.getWorld().spawnParticle(Particle.CRIT_MAGIC,loc,8, 0.3F, 0.2F, 0.3F);
|
||||||
}
|
|
||||||
} catch (Exception x) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while playing Ritual Animation for Slimefun " + Slimefun.getVersion(), x);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,16 +104,12 @@ public class RitualAnimation implements Runnable {
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
particles.add(pedestal.getLocation().add(0.5, 1.5, 0.5));
|
particleLocations.add(pedestal.getLocation().add(0.5, 1.5, 0.5));
|
||||||
items.add(AncientAltarListener.fixItemStack(item.getItemStack(), item.getCustomName()));
|
items.add(AncientAltarListener.fixItemStack(item.getItemStack(), item.getCustomName()));
|
||||||
pedestal.getWorld().playSound(pedestal.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 1F, 2F);
|
pedestal.getWorld().playSound(pedestal.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 1F, 2F);
|
||||||
|
|
||||||
try {
|
dropLocation.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE,pedestal.getLocation().add(0.5, 1.5, 0.5), 16, 0.3F, 0.2F, 0.3F);
|
||||||
l.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE,pedestal.getLocation().add(0.5, 1.5, 0.5),16, 0.3F, 0.2F, 0.3F);
|
dropLocation.getWorld().spawnParticle(Particle.CRIT_MAGIC,pedestal.getLocation().add(0.5, 1.5, 0.5), 8, 0.3F, 0.2F, 0.3F);
|
||||||
l.getWorld().spawnParticle(Particle.CRIT_MAGIC,pedestal.getLocation().add(0.5, 1.5, 0.5), 8,0.3F, 0.2F, 0.3F);
|
|
||||||
} catch (Exception x) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while playing Pedestal Animation for Slimefun " + Slimefun.getVersion(), x);
|
|
||||||
}
|
|
||||||
|
|
||||||
itemLock.remove(item);
|
itemLock.remove(item);
|
||||||
item.remove();
|
item.remove();
|
||||||
@ -128,29 +120,29 @@ public class RitualAnimation implements Runnable {
|
|||||||
|
|
||||||
private void abort() {
|
private void abort() {
|
||||||
running = false;
|
running = false;
|
||||||
pedestals.forEach(b -> utilities.altarinuse.remove(b.getLocation()));
|
pedestals.forEach(b -> listener.getAltarsInUse().remove(b.getLocation()));
|
||||||
|
|
||||||
// This should re-enable altar blocks on craft failure.
|
// This should re-enable altar blocks on craft failure.
|
||||||
utilities.altarinuse.remove(altar.getLocation());
|
listener.getAltarsInUse().remove(altar.getLocation());
|
||||||
l.getWorld().playSound(l, Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1F, 1F);
|
dropLocation.getWorld().playSound(dropLocation, Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1F, 1F);
|
||||||
itemLock.clear();
|
itemLock.clear();
|
||||||
altars.remove(altar);
|
altars.remove(altar);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finish() {
|
private void finish() {
|
||||||
if (running) {
|
if (running) {
|
||||||
l.getWorld().playSound(l, Sound.ENTITY_ZOMBIE_VILLAGER_CURE, 1F, 1F);
|
dropLocation.getWorld().playSound(dropLocation, Sound.ENTITY_ZOMBIE_VILLAGER_CURE, 1F, 1F);
|
||||||
l.getWorld().playEffect(l, Effect.STEP_SOUND, Material.EMERALD_BLOCK);
|
dropLocation.getWorld().playEffect(dropLocation, Effect.STEP_SOUND, Material.EMERALD_BLOCK);
|
||||||
l.getWorld().dropItemNaturally(l.add(0, -0.5, 0), output);
|
dropLocation.getWorld().dropItemNaturally(dropLocation.add(0, -0.5, 0), output);
|
||||||
|
|
||||||
pedestals.forEach(b -> utilities.altarinuse.remove(b.getLocation()));
|
pedestals.forEach(b -> listener.getAltarsInUse().remove(b.getLocation()));
|
||||||
|
|
||||||
// This should re-enable altar blocks on craft completion.
|
// This should re-enable altar blocks on craft completion.
|
||||||
utilities.altarinuse.remove(altar.getLocation());
|
listener.getAltarsInUse().remove(altar.getLocation());
|
||||||
altars.remove(altar);
|
altars.remove(altar);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
l.getWorld().playSound(l, Sound.ENTITY_ZOMBIE_BREAK_WOODEN_DOOR, 1F, 1F);
|
dropLocation.getWorld().playSound(dropLocation, Sound.ENTITY_ZOMBIE_BREAK_WOODEN_DOOR, 1F, 1F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
package me.mrCookieSlime.Slimefun.api.energy;
|
package me.mrCookieSlime.Slimefun.api.energy;
|
||||||
|
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.Skull;
|
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.skull.SkullBlock;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
@ -98,19 +95,16 @@ public final class ChargableBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void updateTexture(final Location l) {
|
private static void updateTexture(final Location l) {
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, () -> {
|
Slimefun.runSync(() -> {
|
||||||
try {
|
Block b = l.getBlock();
|
||||||
Block b = l.getBlock();
|
int charge = getCharge(b);
|
||||||
int charge = getCharge(b);
|
int capacity = getMaxCharge(b);
|
||||||
int capacity = getMaxCharge(b);
|
|
||||||
if (b.getState() instanceof Skull) {
|
if (b.getType() == Material.PLAYER_HEAD || b.getType() == Material.PLAYER_WALL_HEAD) {
|
||||||
if (charge < (int) (capacity * 0.25D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ==");
|
if (charge < (int) (capacity * 0.25D)) SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTEzNjFlNTc2YjQ5M2NiZmRmYWUzMjg2NjFjZWRkMWFkZDU1ZmFiNGU1ZWI0MThiOTJjZWJmNjI3NWY4YmI0In19fQ==");
|
||||||
else if (charge < (int) (capacity * 0.5D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzA1MzIzMzk0YTdkOTFiZmIzM2RmMDZkOTJiNjNjYjQxNGVmODBmMDU0ZDA0NzM0ZWEwMTVhMjNjNTM5In19fQ==");
|
else if (charge < (int) (capacity * 0.5D)) SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzA1MzIzMzk0YTdkOTFiZmIzM2RmMDZkOTJiNjNjYjQxNGVmODBmMDU0ZDA0NzM0ZWEwMTVhMjNjNTM5In19fQ==");
|
||||||
else if (charge < (int) (capacity * 0.75D)) CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19");
|
else if (charge < (int) (capacity * 0.75D)) SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTU4NDQzMmFmNmYzODIxNjcxMjAyNThkMWVlZThjODdjNmU3NWQ5ZTQ3OWU3YjBkNGM3YjZhZDQ4Y2ZlZWYifX19");
|
||||||
else CustomSkull.setSkull(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2EyNTY5NDE1YzE0ZTMxYzk4ZWM5OTNhMmY5OWU2ZDY0ODQ2ZGIzNjdhMTNiMTk5OTY1YWQ5OWM0MzhjODZjIn19fQ==");
|
else SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2EyNTY5NDE1YzE0ZTMxYzk4ZWM5OTNhMmY5OWU2ZDY0ODQ2ZGIzNjdhMTNiMTk5OTY1YWQ5OWM0MzhjODZjIn19fQ==");
|
||||||
}
|
|
||||||
} catch (Exception x) {
|
|
||||||
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while updating a Capacitor Texture for Slimefun " + Slimefun.getVersion(), x);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|
||||||
|
|
||||||
public class DirtyChestMenu extends ChestMenu {
|
public class DirtyChestMenu extends ChestMenu {
|
||||||
|
|
||||||
@ -92,6 +92,19 @@ public class DirtyChestMenu extends ChestMenu {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void consumeItem(int slot) {
|
||||||
|
consumeItem(slot, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void consumeItem(int slot, int amount) {
|
||||||
|
consumeItem(slot, amount, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void consumeItem(int slot, int amount, boolean replaceConsumables) {
|
||||||
|
ItemUtils.consumeItem(getItemInSlot(slot), amount, replaceConsumables);
|
||||||
|
markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void replaceExistingItem(int slot, ItemStack item) {
|
public void replaceExistingItem(int slot, ItemStack item) {
|
||||||
this.replaceExistingItem(slot, item, true);
|
this.replaceExistingItem(slot, item, true);
|
||||||
|
@ -209,7 +209,7 @@ public class ItemListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
ItemStack item = e.getItem();
|
ItemStack item = e.getItem();
|
||||||
|
|
||||||
if (SlimefunManager.isItemSimilar(item, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true)) {
|
if (SlimefunManager.isItemSimilar(item, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||||
|
@ -27,8 +27,8 @@ import org.bukkit.event.entity.EntityExplodeEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.utils.FireworkUtils;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.FireworkShow;
|
|
||||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
||||||
@ -148,7 +148,7 @@ public class ToolListener implements Listener {
|
|||||||
ItemUtils.consumeItem(item, false);
|
ItemUtils.consumeItem(item, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
FireworkShow.launchRandom(e.getPlayer(), 3);
|
FireworkUtils.launchRandom(e.getPlayer(), 3);
|
||||||
List<ItemStack> gifts = new ArrayList<>();
|
List<ItemStack> gifts = new ArrayList<>();
|
||||||
|
|
||||||
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_HOT_CHOCOLATE, 1));
|
gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_HOT_CHOCOLATE, 1));
|
||||||
|
@ -110,7 +110,6 @@ public final class Utilities {
|
|||||||
public final Map<UUID, Integer> enchanting = new HashMap<>();
|
public final Map<UUID, Integer> enchanting = new HashMap<>();
|
||||||
public final Map<UUID, ItemStack> backpack = new HashMap<>();
|
public final Map<UUID, ItemStack> backpack = new HashMap<>();
|
||||||
|
|
||||||
public final Set<Location> altarinuse = new HashSet<>();
|
|
||||||
public final Set<AltarRecipe> altarRecipes = new HashSet<>();
|
public final Set<AltarRecipe> altarRecipes = new HashSet<>();
|
||||||
|
|
||||||
public final Map<UUID, Map<Integer, ItemStack>> soulbound = new HashMap<>();
|
public final Map<UUID, Map<Integer, ItemStack>> soulbound = new HashMap<>();
|
||||||
|
Loading…
Reference in New Issue
Block a user