Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AssetPackBrowser: index of packs is not available #570

Open
nothingTVatYT opened this issue Feb 28, 2024 · 9 comments
Open

AssetPackBrowser: index of packs is not available #570

nothingTVatYT opened this issue Feb 28, 2024 · 9 comments

Comments

@nothingTVatYT
Copy link

The asset packs browser reports an IOException when trying to access the online asset packs:
(The URL https://jmonkeyengine.org/assetpacks/list.php indeed yields an HTTP 404.)

SEVERE [org.openide.util.Exceptions]
java.io.FileNotFoundException: https://jmonkeyengine.org/assetpacks/list.php
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1996)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1581)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1579)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.base/java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:962)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1578)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
	at java.desktop/javax.swing.JEditorPane.getStream(JEditorPane.java:791)
Caused: java.io.FileNotFoundException: https://jmonkeyengine.org/assetpacks/list.php
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2057)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2052)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2051)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1581)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1579)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.base/java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:962)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1578)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
	at java.desktop/javax.swing.JEditorPane.getStream(JEditorPane.java:826)
	at java.desktop/javax.swing.JEditorPane.getStream(JEditorPane.java:805)
	at java.desktop/javax.swing.JEditorPane.setPage(JEditorPane.java:489)
[catch] at com.jme3.gde.assetpack.browser.OnlineBrowser.<init>(OnlineBrowser.java:47)
	at com.jme3.gde.assetpack.browser.AssetPackBrowserTopComponent.jButton2ActionPerformed(AssetPackBrowserTopComponent.java:230)
	at com.jme3.gde.assetpack.browser.AssetPackBrowserTopComponent$5.actionPerformed(AssetPackBrowserTopComponent.java:184)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
	at java.desktop/java.awt.Component.processEvent(Component.java:6391)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
	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)
@neph1
Copy link
Contributor

neph1 commented Mar 2, 2024

I'm afraid those are long gone. It was a feature that never really took off. Should we remove any trace of it? @tonihele @MeFisto94 ?

@tonihele
Copy link
Contributor

tonihele commented Mar 2, 2024

I can't really judge does anyone use it or what it even is. I think you can even create an asset pack project type in the SDK. So all possible to use it.. locally?

It would be great if @normen maybe gets resurrected from his deep slumber to explain the feature :D But I suspect you assessment is correct. Maybe some sort of asset store thingie?

@normen
Copy link
Member

normen commented Mar 2, 2024

Yeah, the old web page allowed to browse online "asset packs" to use in the engine, I still have the backend PHP code but its based on Wordpress.

You can still create asset packs yourself locally though to add prepared assets to different games, its all documented in the SDK F1 help (and the old wiki which the help was grabbed from).

@tonihele
Copy link
Contributor

tonihele commented Mar 2, 2024

If it is super easy to save this patient... we could do it and add some sort of support to https://library.jmonkeyengine.org/ for asset packs...?

But if we are afraid of its usability and maintenance burden, then we should just amputate this feature.

@neph1
Copy link
Contributor

neph1 commented Mar 2, 2024

We could keep the local function and just remove the web links. If people want to share them, they can use library.jmonkeyengine.org. I don't think we need to do any special support for it. Users can download them like with any asset and place them where they need.

@MeFisto94
Copy link
Member

There were some asset packs that were only consumable with that concept? Worldforge stuff? Do i remember correctly?

@neph1
Copy link
Contributor

neph1 commented Mar 5, 2024

@riccardobl Do you think it would be possible to use 'library' to display this? Is it possible to use the api to get all submissions of a certain type (I'm not sure there is an 'asset pack' type as of now).

@normen
Copy link
Member

normen commented Mar 5, 2024

There were some asset packs that were only consumable with that concept? Worldforge stuff? Do i remember correctly?

I packed WorldForge in an AssetPack and made it available through that online asset pack thingy. If I remember right I actually made it so that when you create a new asset pack in the SDK and pass the world forge folder it will recognize it and automatically set up the asset pack so that it works properly with the WF assets (or was it a separate template for WF?).

@riccardobl
Copy link
Member

riccardobl commented Apr 5, 2024

@riccardobl Do you think it would be possible to use 'library' to display this? Is it possible to use the api to get all submissions of a certain type (I'm not sure there is an 'asset pack' type as of now).

Sorry for the late reply, i missed the ping somehow.
Yes it is possible, we can just tag all the asset packs with the same tag "#asset-pack" , and then they can be searched by tag:

Eg. searching by #vehicle
curl -X POST -H "Content-Type: application/json" -d '{"query":"#vehicle", "limit":100,"page":0}' https://library.jmonkeyengine.org/entry/list

{
  "entryId": [
    "38308161-c3cf-4e23-8754-528ca8387c11",
    "2d0fc6de-2e4d-49b1-8372-4f364d79e175"
  ],
  "userId": [
    "11511",
    "11511"
  ]
}

Getting the entry data:

curl -X POST -H "Content-Type: application/json" -d '{"entryId":"38308161-c3cf-4e23-8754-528ca8387c11", "userId":"11511"}' https://library.jmonkeyengine.org/entry/get
# NB: needs both entryId and userId since entries are scoped to the user submitting them
{
  "entryId": "38308161-c3cf-4e23-8754-528ca8387c11",
  "userId": "11511",
  "name": "Minie Physics Library",
  "repo": "https://github.com/stephengold/Minie",
  "docs": "https://stephengold.github.io/Minie",
  "issues": "https://github.com/stephengold/Minie/issues",
  "discussions": "https://hub.jmonkeyengine.org/c/user-code-projects/minie/63",
  "tags": [
    "physics",
    "ragdoll",
    "cloth",
    "vehicle",
    "Bullet",
    "inverse kinematics",
    "rope",
    "collision",
    "convex decomposition",
    "friction",
    "dynamics",
    "character",
    "real-time",
    "tech-demo",
    "library",
    "Physics",
    "Extensions",
    "38308161-c3cf-4e23-8754-528ca8387c11"
  ],
  "description": "Minie is a physics library for JMonkeyEngine that takes  physics-based games to the next level:\r\n\r\n + add solidity to walls, characters, projectiles, landscapes, and vehicles\r\n + detect collisions between complex shapes\r\n + simulate characters and buildings collapsing in real time\r\n + simulate cloth, rope, and deformable volumes, including their interactions with rigid bodies and each other\r\n\r\nForked from the jme3-bullet library, Minie adds many features while preserving most of the jme3-bullet API. Most JME physics examples can use Minie without modification, and Minie adds its own tests, demos, documentation, and tutorials to help you get started.\r\n\r\nThe Minie repo includes the following 3-D models (used in demos):\r\n + Ankh (Creative Commons CC0 1.0 Universal license),\r\n + Banana (Creative Commons CC0 1.0 Universal license),\r\n + Barrel (Creative Commons CC0 1.0 Universal license),\r\n + BowlingPin (Creative Commons CC0 1.0 Universal license),\r\n + CandyDish (Creative Commons CC0 1.0 Universal license),\r\n + Duck (SCEA Shared Source License), \r\n + Horseshoe (Creative Commons CC0 1.0 Universal license),\r\n + MhGame (Creative Commons CC0 1.0 Universal license),  and \r\n + Puppet (Creative Commons Attribution 3.0 license).\r\n\r\nAlso comes with ProFont (MIT license, used in demos).\r\n\r\nFor details, see the Minie documentation at [https://stephengold.github.io/Minie](https://stephengold.github.io/Minie).",
  "descriptionSummary": "Real-time physics simulation, including rigid/soft bodies, vehicles, ragdolls, ropes, convex decomposition, and debugging aids",
  "license": "## Software License\n[BSD 3-Clause “New” or “Revised”](https://opensource.org/licenses/BSD-3-Clause)\n## Permissions\n### Commercial_Use\nThis software and derivatives may be used for commercial purposes.\n### Distribution\nThis software may be distributed.\n### Modification\nThis software may be modified.\n### Private_Use\nThis software may be used and modified in private.\n## Conditions\n### License_And_Copyright_Notice\nA copy of the license and copyright notice must be included with the software.\n## Limitations\n### Liability\nThis license includes a limitation of liability.\n### Warranty\nThe license explicitly states that it does NOT provide any warranty.\n## Media License\n[Mixed Licenses]()\n## Permissions\n## Conditions\n## Limitations",
  "version": "7.7.0",
  "creationDate": 1657920929053,
  "updateDate": 1693854438137,
  "likes": 1,
  "maven-artifacts": [
    "com.github.stephengold:Minie:$VERSION"
  ],
  "platforms": [
    "DESKTOP_LINUX",
    "DESKTOP_WINDOWS",
    "DESKTOP_MACOS",
    "MOBILE_ANDROID"
  ],
  "initializerCategory": "GENERAL"
}

full api dock here api here: https://library.jmonkeyengine.org/apidoc

You can specify a download link from the ui and api that will be returned in the "download" field of the response when available, this one could be used by the sdk to pull the pack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants