mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-11-27 21:27:44 +01:00
Moved the Nether trees conversion to its own listener
This commit is contained in:
parent
1a3049b3b9
commit
1eac578ba1
@ -25,6 +25,7 @@ import world.bentobox.bentobox.listeners.DeathListener;
|
|||||||
import world.bentobox.bentobox.listeners.JoinLeaveListener;
|
import world.bentobox.bentobox.listeners.JoinLeaveListener;
|
||||||
import world.bentobox.bentobox.listeners.NetherPortals;
|
import world.bentobox.bentobox.listeners.NetherPortals;
|
||||||
import world.bentobox.bentobox.listeners.PanelListenerManager;
|
import world.bentobox.bentobox.listeners.PanelListenerManager;
|
||||||
|
import world.bentobox.bentobox.listeners.flags.NetherTreesListener;
|
||||||
import world.bentobox.bentobox.managers.AddonsManager;
|
import world.bentobox.bentobox.managers.AddonsManager;
|
||||||
import world.bentobox.bentobox.managers.CommandsManager;
|
import world.bentobox.bentobox.managers.CommandsManager;
|
||||||
import world.bentobox.bentobox.managers.FlagsManager;
|
import world.bentobox.bentobox.managers.FlagsManager;
|
||||||
@ -195,7 +196,7 @@ public class BentoBox extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register listeners
|
* Registers listeners.
|
||||||
*/
|
*/
|
||||||
private void registerListeners() {
|
private void registerListeners() {
|
||||||
PluginManager manager = getServer().getPluginManager();
|
PluginManager manager = getServer().getPluginManager();
|
||||||
@ -205,6 +206,8 @@ public class BentoBox extends JavaPlugin {
|
|||||||
manager.registerEvents(new PanelListenerManager(), this);
|
manager.registerEvents(new PanelListenerManager(), this);
|
||||||
// Nether portals
|
// Nether portals
|
||||||
manager.registerEvents(new NetherPortals(this), this);
|
manager.registerEvents(new NetherPortals(this), this);
|
||||||
|
// Nether trees conversion
|
||||||
|
manager.registerEvents(new NetherTreesListener(this), this);
|
||||||
// End dragon blocking
|
// End dragon blocking
|
||||||
manager.registerEvents(new BlockEndDragon(this), this);
|
manager.registerEvents(new BlockEndDragon(this), this);
|
||||||
// Banned visitor commands
|
// Banned visitor commands
|
||||||
|
@ -257,24 +257,4 @@ public class NetherPortals implements Listener {
|
|||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts trees to gravel and glowstone
|
|
||||||
*
|
|
||||||
* @param e - event
|
|
||||||
*/
|
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
|
||||||
public boolean onTreeGrow(StructureGrowEvent e) {
|
|
||||||
if (!plugin.getIWM().isNetherTrees(e.getWorld()) || !e.getWorld().getEnvironment().equals(Environment.NETHER)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (BlockState b : e.getBlocks()) {
|
|
||||||
if (Tag.LOGS.isTagged(b.getType())) {
|
|
||||||
b.setType(Material.GRAVEL);
|
|
||||||
} else if (Tag.LEAVES.isTagged(b.getType())) {
|
|
||||||
b.setType(Material.GLOWSTONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package world.bentobox.bentobox.listeners.flags;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Tag;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.world.StructureGrowEvent;
|
||||||
|
import world.bentobox.bentobox.BentoBox;
|
||||||
|
import world.bentobox.bentobox.api.configuration.WorldSettings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles conversion of trees in the Nether if {@link WorldSettings#isNetherTrees()} is {@code true}.
|
||||||
|
*
|
||||||
|
* @author tastybento
|
||||||
|
*/
|
||||||
|
public class NetherTreesListener implements Listener {
|
||||||
|
|
||||||
|
private BentoBox plugin;
|
||||||
|
|
||||||
|
public NetherTreesListener(BentoBox plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts trees to gravel and glowstone.
|
||||||
|
*
|
||||||
|
* @param e event
|
||||||
|
*/
|
||||||
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
|
public void onTreeGrow(StructureGrowEvent e) {
|
||||||
|
// Don't do anything if we're not in the right place.
|
||||||
|
if (!plugin.getIWM().isNetherTrees(e.getWorld()) || !e.getWorld().getEnvironment().equals(World.Environment.NETHER)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modify everything!
|
||||||
|
for (BlockState b : e.getBlocks()) {
|
||||||
|
if (Tag.LOGS.isTagged(b.getType())) {
|
||||||
|
b.setType(Material.GRAVEL);
|
||||||
|
} else if (Tag.LEAVES.isTagged(b.getType())) {
|
||||||
|
b.setType(Material.GLOWSTONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,3 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package world.bentobox.bentobox.listeners;
|
package world.bentobox.bentobox.listeners;
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
@ -70,9 +67,6 @@ public class NetherPortalsTest {
|
|||||||
private World nether;
|
private World nether;
|
||||||
private World end;
|
private World end;
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws java.lang.Exception
|
|
||||||
*/
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
// Set up plugin
|
// Set up plugin
|
||||||
@ -159,14 +153,6 @@ public class NetherPortalsTest {
|
|||||||
when(iwm.inWorld(any(Location.class))).thenReturn(false);
|
when(iwm.inWorld(any(Location.class))).thenReturn(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Test method for {@link world.bentobox.bentobox.listeners.NetherPortals#NetherPortals(world.bentobox.bentobox.BentoBox)}.
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void testNetherPortals() {
|
|
||||||
assertNotNull(new NetherPortals(plugin));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for {@link world.bentobox.bentobox.listeners.NetherPortals#onBlockBreak(org.bukkit.event.block.BlockBreakEvent)}.
|
* Test method for {@link world.bentobox.bentobox.listeners.NetherPortals#onBlockBreak(org.bukkit.event.block.BlockBreakEvent)}.
|
||||||
*/
|
*/
|
||||||
@ -739,50 +725,4 @@ public class NetherPortalsTest {
|
|||||||
Mockito.verify(block).getLocation();
|
Mockito.verify(block).getLocation();
|
||||||
assertTrue(e.isCancelled());
|
assertTrue(e.isCancelled());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Test method for {@link world.bentobox.bentobox.listeners.NetherPortals#onTreeGrow(org.bukkit.event.world.StructureGrowEvent)}.
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void testOnTreeGrow() {
|
|
||||||
NetherPortals np = new NetherPortals(plugin);
|
|
||||||
Location loc = mock(Location.class);
|
|
||||||
// Wrong world to start
|
|
||||||
when(loc.getWorld()).thenReturn(world);
|
|
||||||
BlockState log = mock(BlockState.class);
|
|
||||||
when(log.getType()).thenReturn(Material.OAK_LOG);
|
|
||||||
BlockState log2 = mock(BlockState.class);
|
|
||||||
when(log2.getType()).thenReturn(Material.ACACIA_LOG);
|
|
||||||
BlockState leaves = mock(BlockState.class);
|
|
||||||
when(leaves.getType()).thenReturn(Material.OAK_LEAVES);
|
|
||||||
BlockState leaves2 = mock(BlockState.class);
|
|
||||||
when(leaves2.getType()).thenReturn(Material.OAK_LEAVES);
|
|
||||||
List<BlockState> blocks = new ArrayList<>();
|
|
||||||
blocks.add(log);
|
|
||||||
blocks.add(log2);
|
|
||||||
blocks.add(leaves);
|
|
||||||
blocks.add(leaves2);
|
|
||||||
StructureGrowEvent e = new StructureGrowEvent(loc, TreeType.ACACIA, false, null, blocks);
|
|
||||||
// No nether trees
|
|
||||||
when(iwm.isNetherTrees(world)).thenReturn(false);
|
|
||||||
assertFalse(np.onTreeGrow(e));
|
|
||||||
// nether trees, wrong world
|
|
||||||
e = new StructureGrowEvent(loc, TreeType.ACACIA, false, null, blocks);
|
|
||||||
when(iwm.isNetherTrees(world)).thenReturn(true);
|
|
||||||
assertFalse(np.onTreeGrow(e));
|
|
||||||
// Make the world nether
|
|
||||||
when(iwm.isNetherTrees(nether)).thenReturn(true);
|
|
||||||
when(loc.getWorld()).thenReturn(nether);
|
|
||||||
e = new StructureGrowEvent(loc, TreeType.ACACIA, false, null, blocks);
|
|
||||||
/*
|
|
||||||
* Temporary
|
|
||||||
* TODO: Fix for 1.13
|
|
||||||
assertTrue(np.onTreeGrow(e));
|
|
||||||
Mockito.verify(log).setType(Material.GRAVEL);
|
|
||||||
Mockito.verify(log2).setType(Material.GRAVEL);
|
|
||||||
Mockito.verify(leaves).setType(Material.GLOWSTONE);
|
|
||||||
Mockito.verify(leaves2).setType(Material.GLOWSTONE);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user