mirror of
https://github.com/songoda/UltimateStacker.git
synced 2024-06-26 06:35:15 +02:00
Merge branch 'development'
This commit is contained in:
commit
0b2e3492c2
2
pom.xml
2
pom.xml
|
@ -2,7 +2,7 @@
|
||||||
<groupId>com.songoda</groupId>
|
<groupId>com.songoda</groupId>
|
||||||
<artifactId>UltimateStacker</artifactId>
|
<artifactId>UltimateStacker</artifactId>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<version>2</version>
|
<version>2.0.1</version>
|
||||||
<build>
|
<build>
|
||||||
<defaultGoal>clean install</defaultGoal>
|
<defaultGoal>clean install</defaultGoal>
|
||||||
<finalName>UltimateStacker-${project.version}</finalName>
|
<finalName>UltimateStacker-${project.version}</finalName>
|
||||||
|
|
|
@ -360,6 +360,12 @@ public class UltimateStacker extends SongodaPlugin {
|
||||||
|
|
||||||
|
|
||||||
public void updateHologram(Hologramable stack) {
|
public void updateHologram(Hologramable stack) {
|
||||||
|
// Is this stack invalid?
|
||||||
|
if (!stack.isValid())
|
||||||
|
if (stack instanceof BlockStack)
|
||||||
|
blockStackManager.removeBlock(stack.getLocation());
|
||||||
|
else if (stack instanceof SpawnerStack)
|
||||||
|
spawnerStackManager.removeSpawner(stack.getLocation());
|
||||||
// are holograms enabled?
|
// are holograms enabled?
|
||||||
if (!stack.areHologramsEnabled() && !HologramManager.getManager().isEnabled()) return;
|
if (!stack.areHologramsEnabled() && !HologramManager.getManager().isEnabled()) return;
|
||||||
// create the hologram
|
// create the hologram
|
||||||
|
|
|
@ -76,7 +76,8 @@ public class EntityListeners implements Listener {
|
||||||
|
|
||||||
ItemStack item = event.getEntity().getItemStack();
|
ItemStack item = event.getEntity().getItemStack();
|
||||||
int amount = (stack.getAmount() - 1) + item.getAmount();
|
int amount = (stack.getAmount() - 1) + item.getAmount();
|
||||||
item.setAmount(Math.min((stack.getAmount() - 1) + item.getAmount(), item.getMaxStackSize()));
|
if (amount < 1) return;
|
||||||
|
item.setAmount(Math.min(amount, item.getMaxStackSize()));
|
||||||
if (amount > item.getMaxStackSize())
|
if (amount > item.getMaxStackSize())
|
||||||
UltimateStacker.updateItemAmount(event.getEntity(), amount);
|
UltimateStacker.updateItemAmount(event.getEntity(), amount);
|
||||||
event.getEntity().setItemStack(item);
|
event.getEntity().setItemStack(item);
|
||||||
|
|
|
@ -9,4 +9,6 @@ public interface Hologramable {
|
||||||
String getHologramName();
|
String getHologramName();
|
||||||
|
|
||||||
boolean areHologramsEnabled();
|
boolean areHologramsEnabled();
|
||||||
|
|
||||||
|
boolean isValid();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
package com.songoda.ultimatestacker.stackable;
|
|
||||||
|
|
||||||
|
|
||||||
public interface Stackable {
|
|
||||||
|
|
||||||
int getAmount();
|
|
||||||
}
|
|
|
@ -4,7 +4,7 @@ import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.ultimatestacker.UltimateStacker;
|
import com.songoda.ultimatestacker.UltimateStacker;
|
||||||
import com.songoda.ultimatestacker.settings.Settings;
|
import com.songoda.ultimatestacker.settings.Settings;
|
||||||
import com.songoda.ultimatestacker.stackable.Hologramable;
|
import com.songoda.ultimatestacker.stackable.Hologramable;
|
||||||
import com.songoda.ultimatestacker.stackable.Stackable;
|
import com.songoda.ultimatestacker.utils.Stackable;
|
||||||
import com.songoda.ultimatestacker.utils.Methods;
|
import com.songoda.ultimatestacker.utils.Methods;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
@ -34,6 +34,11 @@ public class BlockStack implements Stackable, Hologramable {
|
||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
return CompatibleMaterial.getMaterial(location.getBlock()) == material;
|
||||||
|
}
|
||||||
|
|
||||||
public void add(int amount) {
|
public void add(int amount) {
|
||||||
this.amount = this.amount + amount;
|
this.amount = this.amount + amount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.songoda.ultimatestacker.stackable.entity;
|
||||||
import com.songoda.core.nms.NmsManager;
|
import com.songoda.core.nms.NmsManager;
|
||||||
import com.songoda.core.nms.nbt.NBTEntity;
|
import com.songoda.core.nms.nbt.NBTEntity;
|
||||||
import com.songoda.ultimatestacker.UltimateStacker;
|
import com.songoda.ultimatestacker.UltimateStacker;
|
||||||
import com.songoda.ultimatestacker.stackable.Stackable;
|
import com.songoda.ultimatestacker.utils.Stackable;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
@ -97,6 +97,11 @@ public class ColdEntityStack implements Stackable {
|
||||||
return stackedEntities.size() + 1;
|
return stackedEntities.size() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void createDuplicates(int duplicates) {
|
public void createDuplicates(int duplicates) {
|
||||||
this.createDuplicates = duplicates;
|
this.createDuplicates = duplicates;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
package com.songoda.ultimatestacker.stackable.spawner;
|
package com.songoda.ultimatestacker.stackable.spawner;
|
||||||
|
|
||||||
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.compatibility.ServerVersion;
|
import com.songoda.core.compatibility.ServerVersion;
|
||||||
import com.songoda.ultimatestacker.UltimateStacker;
|
import com.songoda.ultimatestacker.UltimateStacker;
|
||||||
import com.songoda.ultimatestacker.settings.Settings;
|
import com.songoda.ultimatestacker.settings.Settings;
|
||||||
import com.songoda.ultimatestacker.stackable.Hologramable;
|
import com.songoda.ultimatestacker.stackable.Hologramable;
|
||||||
import com.songoda.ultimatestacker.stackable.Stackable;
|
import com.songoda.ultimatestacker.utils.Stackable;
|
||||||
import com.songoda.ultimatestacker.utils.Methods;
|
import com.songoda.ultimatestacker.utils.Methods;
|
||||||
import com.songoda.ultimatestacker.utils.Reflection;
|
import com.songoda.ultimatestacker.utils.Reflection;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
@ -34,6 +35,11 @@ public class SpawnerStack implements Stackable, Hologramable {
|
||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
return CompatibleMaterial.getMaterial(location.getBlock()) == CompatibleMaterial.SPAWNER;
|
||||||
|
}
|
||||||
|
|
||||||
public void setAmount(int amount) {
|
public void setAmount(int amount) {
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
plugin.getDataManager().updateSpawner(this);
|
plugin.getDataManager().updateSpawner(this);
|
||||||
|
|
|
@ -51,7 +51,8 @@ public class CachedChunk {
|
||||||
if (!Bukkit.getWorld(world).isChunkLoaded(x, z)) {
|
if (!Bukkit.getWorld(world).isChunkLoaded(x, z)) {
|
||||||
return new Entity[0];
|
return new Entity[0];
|
||||||
}
|
}
|
||||||
return getChunk().getEntities();
|
Chunk chunk = getChunk();
|
||||||
|
return chunk == null ? new Entity[0] : getChunk().getEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.songoda.ultimatestacker.utils;
|
||||||
|
|
||||||
|
|
||||||
|
public interface Stackable {
|
||||||
|
|
||||||
|
int getAmount();
|
||||||
|
|
||||||
|
boolean isValid();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user