Intellij Integration

I’ve added a nightly repository and updated the original post to include the information below. This basically means no more 2 day wait. The plugin will still be pushed to jetbrains - this just lets you get updates faster and access new features quicker.


Nightly Repository

To subscribe to the nightly plugin repository follow the steps below. This will give you acces to a faster release cycle and avoids the ~48hr jetbrains validation procedure.

  • Navigate to File → Settings → Plugins.
  • Click the gear icon located next to the MarketPlace and Installed tabs.
  • Click Manage Plugin Repositories.
  • Add the URL below to the repository list.
https://intellij.store.jmonkeyengine.org/updatePlugins.xml

After adding the URL, Click Help → Check for Updates and if there is a newer version available in the nightly repository you will be prompted to install it.

3 Likes

I’m still getting permissions errors trying to open assets within my project. Just to be sure, I created the template fps game and I wasn’t able to open the pistol asset either. I haven’t had a chance to test on my windows box yet, but this was on OSX.

Which version? Does it have a stacktrace? The nightly update may have fixed it.

I have 1.0.5.1 installed now and check for updates says everything is up to date.

Yeah anything with 4 version numbers is a nightly.

I might need to install an apple VM or something. I thought I’d killed that bug :confused:

The templates should work. I’ve tested it at least 30 times. It must be related to the operating system I guess.

I created a project based on the fps template as well. I can open the scene and see it but i can’t see the pistol asset. Restarted intellij and now it freezes each time I try to open an assest so I can’t show you a stack trace but there is no unusual cpu or memory consumption. I’m not using the nightly update and I’m on Windows 10

Edit: So when I reopen the project I can see the previous stacktraces in the event log. Here they are.

PS: The project runs fine by the way and looks great (well, except for the shadows :stuck_out_tongue: )

stacktrace.txt →

java.lang.NoClassDefFoundError: com/jmonkeystore/ide/api/JmeObject
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at com.intellij.serviceContainer.BaseComponentAdapter.getImplementationClass(BaseComponentAdapter.kt:46)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:105)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.jmonkeystore.ide.editor.ui.JmeModelEditorUI.lambda$null$0(JmeModelEditorUI.java:117)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:687)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:963)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:193)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:179)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:455)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:453)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:82)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:250)
	at com.intellij.platform.ProjectUiFrameAllocator$run$1.run(ProjectFrameAllocator.kt:64)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:149)
	at com.intellij.platform.ProjectUiFrameAllocator.run(ProjectFrameAllocator.kt:62)
	at com.intellij.platform.PlatformProjectOpenProcessor.openExistingProject(PlatformProjectOpenProcessor.java:234)
	at com.intellij.ide.RecentProjectsManagerBase.openProject(RecentProjectsManagerBase.kt:379)
	at com.intellij.ide.RecentProjectsManagerBase.reopenLastProjectsOnStart(RecentProjectsManagerBase.kt:467)
	at com.intellij.idea.IdeStarter$main$4.run(ApplicationLoader.kt:533)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
	at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:523)
	at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:242)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:241)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.jmonkeystore.ide.api.JmeObject PluginClassLoader[com.jmonkeystore.intellij-integration, 1.0.5] com.intellij.ide.plugins.cl.PluginClassLoader@3c3062b0
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:77)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 64 more`

induced.txt -> `Following exceptions happened soon after this one, most probably they are induced.


2019-12-12T22:26:38.030
java.lang.NoClassDefFoundError: com/jmonkeystore/ide/api/JmeObject
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at com.intellij.serviceContainer.BaseComponentAdapter.getImplementationClass(BaseComponentAdapter.kt:46)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:105)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.jmonkeystore.ide.editor.ui.JmeModelEditorUI.lambda$null$0(JmeModelEditorUI.java:117)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:687)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:963)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:193)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:179)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:455)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:453)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:82)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:250)
	at com.intellij.platform.ProjectUiFrameAllocator$run$1.run(ProjectFrameAllocator.kt:64)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:149)
	at com.intellij.platform.ProjectUiFrameAllocator.run(ProjectFrameAllocator.kt:62)
	at com.intellij.platform.PlatformProjectOpenProcessor.openExistingProject(PlatformProjectOpenProcessor.java:234)
	at com.intellij.ide.RecentProjectsManagerBase.openProject(RecentProjectsManagerBase.kt:379)
	at com.intellij.ide.RecentProjectsManagerBase.reopenLastProjectsOnStart(RecentProjectsManagerBase.kt:467)
	at com.intellij.idea.IdeStarter$main$4.run(ApplicationLoader.kt:533)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
	at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:523)
	at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:242)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:241)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.jmonkeystore.ide.api.JmeObject PluginClassLoader[com.jmonkeystore.intellij-integration, 1.0.5] com.intellij.ide.plugins.cl.PluginClassLoader@3c3062b0
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:77)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 64 more


2019-12-12T22:26:38.900
java.lang.NoClassDefFoundError: com/jmonkeystore/ide/api/JmeObject
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at com.intellij.serviceContainer.BaseComponentAdapter.getImplementationClass(BaseComponentAdapter.kt:46)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:105)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.jmonkeystore.ide.startup.JmeStartupActivity.runActivity(JmeStartupActivity.java:43)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.java:216)
	at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$null$1(StartupManagerImpl.java:177)
	at com.intellij.openapi.project.DumbServiceImpl.lambda$runWhenSmart$0(DumbServiceImpl.java:247)
	at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$runWhenProjectIsInitialized$6(StartupManagerImpl.java:486)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:309)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:441)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:687)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:963)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:193)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:179)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:455)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:453)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:82)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:250)
	at com.intellij.platform.ProjectUiFrameAllocator$run$1.run(ProjectFrameAllocator.kt:64)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:149)
	at com.intellij.platform.ProjectUiFrameAllocator.run(ProjectFrameAllocator.kt:62)
	at com.intellij.platform.PlatformProjectOpenProcessor.openExistingProject(PlatformProjectOpenProcessor.java:234)
	at com.intellij.ide.RecentProjectsManagerBase.openProject(RecentProjectsManagerBase.kt:379)
	at com.intellij.ide.RecentProjectsManagerBase.reopenLastProjectsOnStart(RecentProjectsManagerBase.kt:467)
	at com.intellij.idea.IdeStarter$main$4.run(ApplicationLoader.kt:533)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
	at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:523)
	at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:242)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:241)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:906)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:779)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:422)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:421)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.jmonkeystore.ide.api.JmeObject PluginClassLoader[com.jmonkeystore.intellij-integration, 1.0.5] com.intellij.ide.plugins.cl.PluginClassLoader@3c3062b0
	at com    .intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:77)
    	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    	... 72 more

Like 99% of those errors are not related to my plugin. The only one is JmeObject missing and that’s fixed in the nightly.

You need to add a light to the scene. There is a menu to add a debug light or add your own by right clicking a scene node. Then zoom in with your mouse wheel. If you click a node in the scene explorer it will display a bounding box or mesh shape in blue - so you should be able to see it easier if it’s small like a gun.

The light was added already but the asset was just too small. Zoomed in and it’s ok. I feel stupid now :smile: . Still don’t know why the ide froze but seems to work for now

1 Like

I think a pistol is like 20x10cm and it’s zoomed out 15m so… yeah.

It would be nice to have double click to zoom to a spatial and ctrl/shift for speed up/slow down for movement too.

I’ve been making the transition to IntelliJ recently and I’ve noticed occasional, apparently random freezes. This is on an updated almost-vanilla IntelliJ install without @jayfella’s jME plugin.

Well intellij does a lot of things in the background which can be turned off, so occasional freezes can be expected, but the problem was the plugin for me. I updated to the nightly build on the custom repository and it’s working fine now

1 Like

So I tested on windows and didn’t run into issues directly. I did notice the gun model would spaz out every now and then though. Also, navigating to try to see the gone model was a little weird in the scene composer. I was expecting to be able to use WASD to be able to navigate.

As far as OSX goes… There is going to be some issues with lwjgl3 (such as the fact that you can’t use the launcher). We may want some sort of warning in the comments about that as well as needing -XStartOnFirstThread as a jvm option.

I tried using lwjgl 2 instead and hit the following error:

Uncaught exception thrown in Thread[jME3 Main,5,main]
RendererException: compile error in: ShaderSource[name=Common/MatDefs/Light/PBRLighting.frag, defines, type=Fragment, language=GLSL110]
ERROR: 0:679: '' : syntax error: incorrect preprocessor directive
ERROR: 0:679: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline

I figure this is probably a jme error and not an error with your plugin.

Switching to OpenGL 3.2 core profile may fix that.

settings.setRenderer(AppSettings.LWJGL_OPENGL32);

1 Like

The navigation is a bit off for me as well. Would be nice to have the option to customize the controls for navigating the scene view. Anyway I’m grateful that the plugin was made for my favorite ide and looking forward to further updates :smiley:

For the most part I’m looking at UE and Unity editors and finding a good middle ground. There’s a kind of unspoken standard for editor movement. Unreal’s appears to be developed a lot better IMO. It sounds a lot like I’m copying but in reality I’d say it’s more of “catching up”. Some things are a natural action like pinch-zoom, copy/paste, etc, that you’d just expect to work a certain way.

I think doing what UE does for the editor is a good direction honestly. The movement there with WASD, where W and S move in the depth axis, A and D strafe on the horizontal axis and holding the right mouse button while moving changes the direction on all axes is intuitive because it’s similar to an fps game control

Updated the nightly to 1.0.5.2

I’ve done a lot of work related to the movement of the camera in the scene editor.

  • If you double-click a node in the Scene Explorer it will lookAt it.
  • Pressing any mouse button + WASD/QE will move the camera.
  • LMB = move forward/backward, rotate left/right
  • RMB = Rotate
  • MMB = Pan
  • MouseWheel = Move forward/backward

These are basically carbon-copies of the unreal editor bindings. It appears to me that I can move around a scene and put the camera where I want it relatively seamlessly now. I must say I do prefer this method of WASD + Mouse a lot.

3 Likes

No such luck.

Hi @jayfella,
Thanks for this awesome plugin. I think this will surely take jME to the future.
I have been playing around with the scene editor/ navigation I must say it feel perfect.
I would however like to see these very simple additions to the editor if possible in any way.
Maybe these are already there but not visible yet?

  • First but for most: Undo/Redo Stack
  • Adding of more primitives
  • Drag and drop of models from resources to scene
  • Gizmo for spatial transformation, scaling and rotation
  • Material editor/adding to spatial
  • Maybe the normal other stuff like terrain editor and painting
  • Template for creating an Android game
  • …to be continued…

But so for so good.
Very well done!

1 Like

Is there any sort of documentation on how to setup intellij to debug the plugin? I wanted to take a crack at figuring out the osx permission problem.