Giter Club home page Giter Club logo

bastion's People

Contributors

dquist avatar jjj5311 avatar rourke750 avatar spacefountain avatar ttk2 avatar wildweazel avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

bastion's Issues

DB connection failure

This and what looks like all the rest of the bastions failed to save due to the DB connection closing. The server is still running after this occurred.

2014-05-19 21:53:04 [WARN] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 47,917,5
51 milliseconds ago. The last packet sent successfully to the server was 47,917,551 milliseconds ago. is longer than the server configured value of '
wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured
values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
2014-05-19 21:53:04 [WARN] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2014-05-19 21:53:04 [WARN] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
2014-05-19 21:53:04 [WARN] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2014-05-19 21:53:04 [WARN] at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3348)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1967)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)
2014-05-19 21:53:04 [WARN] at isaac.bastion.storage.BastionBlockStorage.saveBastionBlock(BastionBlockStorage.java:58)
2014-05-19 21:53:04 [WARN] at isaac.bastion.storage.BastionBlockStorage.saveBastionBlocks(BastionBlockStorage.java:51)
2014-05-19 21:53:04 [WARN] at isaac.bastion.storage.BastionBlockSet.update(BastionBlockSet.java:113)
2014-05-19 21:53:04 [WARN] at isaac.bastion.storage.BastionBlockSet$1.run(BastionBlockSet.java:45)
2014-05-19 21:53:04 [WARN] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:58)
2014-05-19 21:53:04 [WARN] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
2014-05-19 21:53:04 [WARN] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:614)
2014-05-19 21:53:04 [WARN] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273)
2014-05-19 21:53:04 [WARN] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:562)
2014-05-19 21:53:04 [WARN] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:469)
2014-05-19 21:53:04 [WARN] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
2014-05-19 21:53:04 [WARN] Caused by: java.net.SocketException: Broken pipe
2014-05-19 21:53:04 [WARN] at java.net.SocketOutputStream.socketWrite0(Native Method)
2014-05-19 21:53:04 [WARN] at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
2014-05-19 21:53:04 [WARN] at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
2014-05-19 21:53:04 [WARN] at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
2014-05-19 21:53:04 [WARN] at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
2014-05-19 21:53:04 [WARN] at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3329)
2014-05-19 21:53:04 [WARN] ... 16 more

Could not execute SQL statement. Duplicate entry '6' for key 'PRIMARY'

2014-04-27 02:43:55 [ERROR] [Bastion] Could not execute SQL statement! │···························
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '6' for key 'PRIMARY' │···························
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_51] │···························
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[?:1.7.0_51] │···························
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.7.0_51] │···························
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[?:1.7.0_51] │···························
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.Util.getInstance(Util.java:382) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at isaac.bastion.storage.Database.execute(Database.java:142) [Bastion.jar:?] │···························
at isaac.bastion.storage.BastionBlockStorage.saveBastionBlock(BastionBlockStorage.java:77) [Bastion.jar:?] │···························
at isaac.bastion.storage.BastionBlockStorage.saveBastionBlocks(BastionBlockStorage.java:49) [Bastion.jar:?] │···························
at isaac.bastion.storage.BastionBlockSet.update(BastionBlockSet.java:111) [Bastion.jar:?] │···························
at isaac.bastion.storage.BastionBlockSet$1.run(BastionBlockSet.java:45) [Bastion.jar:?] │···························
at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:58) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [spigot.jar:git-Spigot-1.7.2│···························
gb58e277] │···························
at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:614) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:562) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:469) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │···························
2014-04-27 02:43:55 [INFO] FactoryMod v1.0: Saving Factory data...

/bsi does not work correctly

/bsi does not work properly. It shows the same block as protected sometimes, and not other times. It seems to be more consistent when you are standing within the field, but is still not reliable.

Is there a right way to break a Bastion?

The README is silent on the issue of whether it is possible to move a Bastion after it has been placed. I was told in mumble, today, that Bastions can be picked up with Silk Touch, but the current code doesn't fix the drop in the BlockBreakEvent and the builds currently on CivTest and the main server just drop sponge.

The question about movability has been asked before on the subreddit but was never answered and there is some misinformation going around.

I'm not sure whether the defect is in the code or in the documentation.

error on shutdown

2014-05-16 09:14:50 [INFO] [Bastion] Failed to delete 285 │·······
2014-05-16 09:14:50 [INFO] [Bastion] Location was Location{world=CraftWorld{name=world},censored location} │·······
2014-05-16 09:14:50 [INFO] [Bastion] It was placed on 1399436817859 │·······
2014-05-16 09:14:50 [INFO] [Bastion] Its balance is 0.0 │·······
│·······
│·······
2014-05-16 09:14:50 [WARN] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed. │·······
2014-05-16 09:14:50 [WARN] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) │·······
2014-05-16 09:14:50 [WARN] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) │·······
2014-05-16 09:14:50 [WARN] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) │·······
2014-05-16 09:14:50 [WARN] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.Util.getInstance(Util.java:382) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) │·······2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:402) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3722) │·······
2014-05-16 09:14:50 [WARN] at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:3679) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.storage.BastionBlockStorage.saveBastionBlock(BastionBlockStorage.java:57) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.storage.BastionBlockStorage.saveBastionBlocks(BastionBlockStorage.java:51) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.storage.BastionBlockSet.update(BastionBlockSet.java:113) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.storage.BastionBlockSet.close(BastionBlockSet.java:59) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.manager.BastionBlockManager.close(BastionBlockManager.java:51) │·······
2014-05-16 09:14:50 [WARN] at isaac.bastion.Bastion.onDisable(Bastion.java:67) │·······
2014-05-16 09:14:50 [WARN] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:252) │·······
2014-05-16 09:14:50 [WARN] at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:374) │·······2014-05-16 09:14:50 [WARN] at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:409) │·······
2014-05-16 09:14:50 [WARN] at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:402) │·······
2014-05-16 09:14:50 [WARN] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.disablePlugins(CraftServer.java:398) │·······
2014-05-16 09:14:50 [WARN] at net.minecraft.server.v1_7_R1.MinecraftServer.stop(MinecraftServer.java:381) │·······
2014-05-16 09:14:50 [WARN] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:504) │·······2014-05-16 09:14:50 [WARN] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)

Comparable implementation on BastionBlock faulty

The comparison here does not describe a total ordering:

https://github.com/spaceFountain/Bastion/blob/master/Bastion/src/isaac/bastion/BastionBlock.java#L514

BastionBlock a with location (0,0,0)
BastionBlock b with location (1,-1,0)

a.compareTo(b) will return -1 as a's x is less than b's x
b.compareTo(a) will return -1 as b's y is less than a's y

This breaks the Comparable contract (a.compareTo(b) should equal 0 - b.compareTo(a)) and could potentially lead to faults in the QuadTree structure - haven't investigated in depth. It would certainly lead to faults in ordered maps.

Stack trace with (I assume) liquid flow blocking

2014-04-28 02:29:56 [ERROR] Could not pass event BlockFromToEvent to Bastion v0.5.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:472) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.BlockFlowing.a(BlockFlowing.java:140) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.WorldServer.a(WorldServer.java:566) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.WorldServer.doTick(WorldServer.java:209) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:659) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:562) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:469) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
Caused by: java.lang.NullPointerException

Bastion field shape

Here's a picture showing the field.

The obsidian is the field shape in Civcraft, and the blue glass shows what an actual circle looks like.

First of all, why does it need to be a circle? I've asked the mods several times, and have yet to hear a logical answer. I've heard "that's just how it was written" and "we wanted it to be how snitches used to be". None of these answers seem logical to me; there's a good reason that snitch fields are square.

Second, circles (especially these "circles") are very difficult to mesh to get full coverage (you end up with a radius of 6 instead of 10).

So, we have at least 1 very good reason to make the field square, and no good reason at all to make it a circle. I'd like a real explanation as to why they are circular.

Bastion block failed to mature

I placed a bastion block in the way instructed to me by Dr_Jawa:

Typed "/bsc"
Typed "/ctf group groupname" with a diamond in my hand
Selected and placed the Bastion block.

When "/bsi" was used, the bastion block said "Some strength".

This morning, 10 hours later, when I did "/bsi", it returned a blank line in chat.

I decided to find the actual perimeter, since Bastion blocks do not seem to have a "normal" circle. I had my friend place blocks around the edge, and after about 10 block placement attempts, the Bastion effect failed and my bastion block reverted to a sponge. It seems that it did not mature at all.
I really would like my block refunded if this was due to a glitch.

Error occurred while disabling Bastion v0.5.0

2014-04-25 09:50:02 [INFO] [Bastion] Disabling Bastion v0.5.0 │·······
2014-04-25 09:50:02 [INFO] [Bastion] saveBastionBlocks for 8 blocks │·······
2014-04-25 09:50:02 [ERROR] Error occurred while disabling Bastion v0.5.0 (Is it up to date?) │·······
java.lang.NullPointerException │·······
at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3124) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4529) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at isaac.bastion.storage.BastionBlockStorage.saveBastionBlock(BastionBlockStorage.java:69) ~[?:?] │·······
at isaac.bastion.storage.BastionBlockStorage.saveBastionBlocks(BastionBlockStorage.java:49) ~[?:?] │·······
at isaac.bastion.storage.BastionBlockSet.update(BastionBlockSet.java:111) ~[?:?] │·······
at isaac.bastion.storage.BastionBlockSet.close(BastionBlockSet.java:59) ~[?:?] │·······
at isaac.bastion.manager.BastionBlockManager.close(BastionBlockManager.java:51) ~[?:?] │·······
at isaac.bastion.Bastion.onDisable(Bastion.java:67) ~[?:?] │·······
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:252) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:374) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:409) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:402) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.disablePlugins(CraftServer.java:398) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at net.minecraft.server.v1_7_R1.MinecraftServer.stop(MinecraftServer.java:381) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:504) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277] │·······
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]

SQL injection risk

The database command here is subject to SQL injection via the world name:

https://github.com/spaceFountain/Bastion/blob/master/Bastion/src/isaac/bastion/storage/BastionBlockStorage.java#L58

This is currently exploitable only by users with permission to create worlds, if that, which makes it not a release blocker, but should be cleaned up in case someone repeats similar down the track in a more exploitable way. Please use prepared statements with placeholders for all queries requiring parameters, and never add a raw string in to a SQL statement.

[ERROR] Could not pass event BlockFromToEvent to Bastion

2014-04-24 23:27:22 [ERROR] Could not pass event BlockFromToEvent to Bastion v0.5.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:472) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.BlockFlowing.a(BlockFlowing.java:140) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.WorldServer.a(WorldServer.java:566) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.WorldServer.doTick(WorldServer.java:209) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:659) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:562) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:469) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
Caused by: java.lang.NullPointerException
at isaac.bastion.BastionBlock.blocked(BastionBlock.java:248) ~[?:?]
at isaac.bastion.manager.BastionBlockManager.getBlockingBastion(BastionBlockManager.java:240) ~[?:?]
at isaac.bastion.manager.BastionBlockManager.independantlyBlockedBy(BastionBlockManager.java:286) ~[?:?]
at isaac.bastion.manager.BastionBlockManager.blocksAction(BastionBlockManager.java:294) ~[?:?]
at isaac.bastion.manager.BastionBlockManager.handleFlowingWater(BastionBlockManager.java:159) ~[?:?]
at isaac.bastion.listeners.BastionListener.waterflowed(BastionListener.java:49) ~[?:?]
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) ~[spigot.jar:git-Spigot-1.7.2-R0.3-122-gb58e277]
... 12 more

Remove /bsb and /bsc

When rebagi and I did much of our initial testing, the bastion block was a diamond block and as such having any reinforced diamond block become a bastion would be bad.

However, since bastions are sponges, it would greatly simplify the process if instead the act of reinforcing the sponge (/ctr or /ctf) made it a bastion field. It gets convoluted rather quickly managing separate bastion and citadel modes with /bsb and /bsc. Alternative would be to rename /bsb to /bsr and /bsc to /bsf. The reasoning for this is that it mimics the similar citadel commands and is easier for the user to catch on to.

If this behavior could be restored it would make the mod way more user friendly, which is a problem currently.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.