PluginBugs / Issues-ItemsAdder

Repository used to keep track of issues of my plugin ItemsAdder
https://itemsadder.devs.beer
55 stars 21 forks source link

Request for improvement of external-host #1308

Closed bl9ckSapphire closed 3 years ago

bl9ckSapphire commented 3 years ago

Terms

Discord tag (optional)

xppqw#1737

Describe the solution you'd like

Please improve to use the download link of "OneDrive" in the "external-host:" function

Is your feature request related to a problem?

Hi. I'm trying to use "external-host:" using OneDrive(OneDrive is Microsoft's cloud storage) The reason I use OneDrive is because it downloads much faster than DropBox.

But when I run bukkit, the error appears. [Pack] Resourcepack URL is not valid, not a zip file (external-host). Type: text/html; charset=utf-8 Url: https://onedrive.live.com/download?cid=3820E8AFF51336C9&resid=3820E8AFF51336C9%212306&authkey=ACURC6gvMZHS4G8

And, when users Join the server, this error appears once more. ERROR]: [ItemsAdder] !!! Resourcepack invalid url, can't apply to player: https://onedrive.live.com/download?cid=3820E8AFF51336C9&resid=3820E8AFF51336C9%212306&authkey=ACURC6gvMZHS4G8

My resource pack url is "https://onedrive.live.com/download?cid=3820E8AFF51336C9&resid=3820E8AFF51336C9%212306&authkey=ACURC6gvMZHS4G8", and of course It is a direct download link method.(Direct download method like dropbox)

It works fine with other resource pack download plugins, but the "external-host:" function of itemsAdder doesn't work with the above mentioned error.

In addition, the "resource-pack=" option built into "server.properties" can also be used to download the resource pack from the OneDrive link. So I don't think it's an issue with OneDrive links.

Describe alternatives you've considered

The "external-host:" in itemsAdder doesn't seem to be compatible with "OneDrive" links.

Please improve to use the download link of "OneDrive" in the "external-host:" function

Additional context

No response

LoneDev6 commented 3 years ago

ItemsAdder version? Did you try 2.4.21c?

LoneDev6 commented 3 years ago

Anyway, the link somehow is reporting text/html to your server, that's why. Minecraft can't apply text/html resourcepacks. It must use application/zip.

ItemsAdder checks for this to avoid loop of the loading bar. Minecraft will be stuck on the loading view if the resourcepack is not valid. I can add a setting to skip the URL verification, but keep in mind that this may introduce problems.

bl9ckSapphire commented 3 years ago

Ummm... is that so? But as I said above, I was able to download the resource pack from the "OneDrive" link.

Anyway, can you add an option like "allow only links in application/zip format:" as an additional option of "external-host:" in config.yml?

LoneDev6 commented 3 years ago

Ummm... is that so?

Yes it is. This is how this game works, you cant expect the game to download a file from a web page if it's not a direct file download

Are you sure it works with "other plugins"? I'm 100% sure that it won't work because the website is sometimes returning text/html which means it's showing a web page instead of providing the direct download file.

How are you generating this URL?

bl9ckSapphire commented 3 years ago

Are you sure it works with "other plugins"?

Yes, I have experimented with the plugin "https://www.spigotmc.org/resources/resource-pack-downloader.6262/" and confirmed that the resource pack is successfully applied.

Also, the link of "OneDrive" was recognized by the "resource-pack=" function built into the "server.properties" file, and it was confirmed that the resource pack was also applied successfully.

bl9ckSapphire commented 3 years ago

How are you generating this URL?

111

Extract the link using the embed function of OneDrive,

In the link in the "https://" part, "embed?" → "download?" by replacing

I have created a direct download link.

LoneDev6 commented 3 years ago

Can you do test with some friends? To see if the pack gets applied correctly even with different home IP address (use the other plugin to test). Also can you explain better how to obtain the URL?

Anyway I fear that the URL will eventually expire after some days because of the "authKey" in the URL. I doubt it's of infinite duration.

NOTE: you can use GoogleDrive if you want https://itemsadder.devs.beer/plugin-usage/resourcepack-hosting/google-drive-1.17.1+

bl9ckSapphire commented 3 years ago

Also can you explain better how to obtain the URL?

gd-1

bl9ckSapphire commented 3 years ago

Can you do test with some friends?

Yes, I just asked a friend to try it. He confirmed that the resource pack was applied successfully.

LoneDev6 commented 3 years ago

I'll do some tests to see why Onedrive is returning text/html page instead of direct file when the server checks the URL. Thanks

LoneDev6 commented 3 years ago

Anyway in the meantime you can use selfhost (which is 1000 times better) or GoogleDrive or Dropbox or auto-external-host

LoneDev6 commented 3 years ago

OneDrive is not reliable to host resourcepacks. Anyway in 2.4.23 version you will be able to set this option in config.yml of ItemsAdder. skip-url-file-type-check___DONT_ASK_HELP_IF_SET_TRUE: true

bl9ckSapphire commented 3 years ago

Thanks for feature support

LoneDev6 commented 3 years ago

No problem! I'll release the feature in some hours after the beta testing team confirms everything is working fine.

Keep in mind that it's a bit "risky" because the server cannot make sure the URL is valid, this can cause your players to be stuck on login phase if the URL is not valid or if OneDrive doesn't provide the direct download sometimes.