Latch v0.1.0 šŸ”“

Thanks for reporting again Cellamir, this was working at one point but guess it broke :slight_smile:

Iā€™ll try to fix this tomorrow.

Even if itā€™s a bug, that actually sounds like an interesting feature :wink:

ā€¦ No, thatā€™s not a suggestion to keep it. It just seems oddly useful.

1 Like

Evening Night,

I work with Cellamir on the same server. Seems the plugin is persisting with the error when using its commands.

Here is a log file from the server during the error in question.

And here is the Crash Report.

The error is occurring on Latch-0.0.2 on spongevanilla-1.10.2-5.0.0-BETA-99
Thank you again for your attention.

@Razor1rot and @cellamir

Iā€™ve published v0.0.3 to resolve your issues, let me know if you notice anything else!

2 Likes

Much appreciated. thanks for the focused response. well check it out!

Running into a crash on boot when using Latch v0.0.3 on SpongeForge 5.0.0-BETA-1675. It seems like it canā€™t find the SqlService. Are you trying to use the service before it is registered?

Error injecting constructor, java.util.NoSuchElementException: No value present
	at com.ichorcommunity.latch.Latch.<init>(Latch.java:85)
	at org.spongepowered.common.guice.SpongePluginGuiceModule.configure(SpongePluginGuiceModule.java:68)
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
	at org.spongepowered.mod.plugin.SpongeModPluginContainer.constructMod(SpongeModPluginContainer.java:281)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
	at com.google.common.eventbus.EventBus.post(EventBus.java:275)
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:239)
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:217)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
	at com.google.common.eventbus.EventBus.post(EventBus.java:275)
	at net.minecraftforge.fml.common.LoadController.redirect$onPost$0(LoadController.java:53)
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:142)
	at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:545)
	at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:97)
	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:328)
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:121)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:431)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.util.NoSuchElementException: No value present
	at java.util.Optional.get(Unknown Source)
	at com.ichorcommunity.latch.storage.SqlHandler.getConnection(SqlHandler.java:61)
	at com.ichorcommunity.latch.storage.SqlHandler.createTables(SqlHandler.java:92)
	at com.ichorcommunity.latch.storage.SqlHandler.<init>(SqlHandler.java:56)
	at com.ichorcommunity.latch.Latch.<init>(Latch.java:89)
	at com.ichorcommunity.latch.Latch$$FastClassByGuice$$8fea1fb1.newInstance(<generated>)
	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
	... 30 more

Thanks Kippers - I didnā€™t know Forge loaded things differently than Vanilla.

Iā€™ve published v0.0.4 to initialize the SQL connection later and tested it with Forge, let me know if you have any other issues.

1 Like

Latch is working like a charm now, thanks.

Hi, The config file isnā€™t generating.

For me the configuration file is generating. Are you looking in the config folder? In there should be a folder called latch, and within there the configuration file is called latch.conf. If not, what version of Sponge are you using?

The folder is there but the latch.conf isnā€™t in there. the version of sponge i am using is spongeforge-1.10.2-2052-5.0.0-BETA-1675.jar

Is it possible to have the mod register chest being locked by players, but only have it work within a certain region? So for primary example, if player has chest locked in region a, and chest moves (without being destroyed) to region b, have it so it still opens in region a but remains closed to all but the player in region b (without reapplying the locks).

We have released an update to Latch, unfortunately it will not be compatible with past versionsā€™ databases, but we do not think that will occur again. According to our data no one has been using this recently, so I hope this does not affect any of you too harshly. Soon we hope to increase admin functionality such as purging all of a playerā€™s locks, bypassing locks, and bypassing limits. I also hope to create some more simplified commands for people who dislike the flag system. If you have any requests please notify us here or with a Github issue.

Find the new releases for API 5.1.0 and 6.0.0 here.

:lock: Latch v0.1.0

Our first major update in a while. With this release we aimed to increase stability, update to current standards, clean up code, stylize our messages, and add some features of convenience.

Features:

  • Sponge updated to API versions 5.1.0 and 6.0.0
  • Added a donation chest ("/latch donation"), where you have full access but others can only input
  • Added a protection from redstone interactions. Can be controlled from config then also per lock if enabled.
  • Formats many of the pluginā€™s messages. If you have any suggestions in this department please inform us.
  • Added shulker boxes to default protectable blocks for API 6.0.0
  • Adds a simplified add command ("/latch add [user]")
  • Adds a simplified remove command ("/latch remove [user]")
  • Switched to bStats instead of mcstats. Find our page here.
  • Updates the default lock limits.

Bugfixes:

  • Fixes our custom event failing to cast to AbstractEvent (Thanks @dualspiral)
  • Fixes lock limit check being called when it shouldnā€™t be
  • Fixes certain error messages not showing up
  • Stops lock interactions from processing if player is not the root cause
  • Other miscellaneous changes

Code changes:

  • Updated SpongeGradle to 0.8.1
  • Updated Gradle wrapper to Gradle 3.2
  • Set Gradle to always compile with UTF-8
  • Removes collections of Users, instead use UUIDs
  • Switches domain for packages
  • Began to utilize more Java 8 features
  • General cleanup

possible to protect the painting, the frame (and its contents), rack with armor ?

@Burlog Unfortunately not at the moment as these are not truly blocks but rather entities, sorry. We plan to support these and other entities in a future release though, so keep checking back.

If you have any other features or changes you would like to see please say so, as we love any suggestions we can get.

@Prototype_Undergroun Sorry about the late response. If you are still interested in this feature, would you mind elaborating? I am not sure I really understand your question and it seems it may be out of the scope of this plugin, but it could still be a possibility.

While playing around with this plugin, Iā€™ve found a few bugs/things to mention:

  • Pressure plates and buttons get stuck in the ā€œonā€ position when theyā€™re placed next to a locked object (with ā€œprotect_from_redstoneā€=false) or are locked (by adding them to the ā€œlockable_blocksā€ list)
  • Furnaces get stuck to visual state they were locked in (lit=never turns off, off=never lights)
  • Donation lock owners can duplicate items if both them and someone without access to remove items are accessing a chest at the same time
  • No unlock notification when breaking a locked block
  • No admin bypass feature
  • The ā€œhere forā€ in ā€œClick here for Latch helpā€ is missing the ā€œ/ā€ for the shortcut (Just says ā€œlatch helpā€ in chat)
  • Clunky commands (/lock should alias for /latch private, /unlock should alias for /latch delete)

Sponge version: spongeforge-1.10.2-2171-5.1.0-BETA-2010
Latch version: Latch-0.2.0-5.1.0

1 Like

Thanks for testing Latch, we really appreciate it. We want to catch things like this before a 1.0.0 release, especially issues like the donation chest problem, so keep it up. Weā€™ll do our best to fix these soon.

If you are using this on a production server the best you can do right now is set the limit for donation chests to 0. With the 0.3.0 release we hope to have extensive purge commands along with admin bypass functionality.

Again thanks for the reports,

Meronat

Iā€™m hoping to get a patch release out tonight which fixes the most pressing issues here, then a minor release this weekend which addresses the rest.

Edit: We found some more issues and it may take a little longer than we though. Sorry about the wait.

For now I recommend everyone turn the donation chest limit to 0 as there are a few problems with them beyond just the duplication issue.

Hello my friends, sorry that this took a long time, but Latch has been finally updated to version 0.3.0 with many fixes to the issues @Dead_Island_Dude reported. Thank you for those reports and suggestions. You can find the download and more information here on our Ore page. We hope you enjoy the release.

Please continue discussion of this plugin on the new forum page which Ore automatically handles for us.

I would appreciate a @moderateurs closing this topic now to facilitate discussion moving to the Ore forum page. Thank you.