Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • 🎒 Back-to-School Sale!

    Get 20% OFF on all monthly Ranks with coupon code: Back-to-school

    Start the new season smarter, stronger, and ready to shine ✨

    💡 Keep your subscription active and you’ll continue paying the discounted price every month!

    Upgrade Now 🚀
Force Resourcepacks

Plugins MC Force Resourcepacks 1.12.32

Register to download
1702460577931.webp

Did you ever want to force players to use a certain server resourcepack on one of your servers? Maybe for a minigame as part of your network? Or maybe you don't want to force the pack on the users but just want to inform the ones who do not accepted it about what they are missing out? Then this is the plugin you always searched for!

1702460587807.webp


Force Resourcepacks is the enhanced version of my Bungee Resourcepacks and World Resourcepacks plugins. In addition to beeing able to set different resourcepacks per world, server or on your whole proxy network (if installed in Bungee's or Velocity's plugin folder) you can also react on whether the user accepted downloading the pack and send them a message or even kick them if they did not do that!
It even notices when a Bukkit server behind the proxy sends a resourcepack and applies the server's pack status rules on it! That way it is compatible with minigames plugins that manage their own server resourcepacks while still providing the ability to kick a user from the game's server when they did not download the pack!
[IMG]
Test server: test.phoenix616.dev
[IMG]
Issue tracker and repo:
GitLab
[IMG]
Commands, Permission and more:
Documention Tab
[IMG]
IRC channel: #forceresourcepacks on irc.phoenix616.dev
[IMG]
Discord channel: https://discord.gg/qKYJBSkTZC
Joining through that invite auto subscribes you to update notifications, if you don't want that use this one.
Features
  • Kick players or prevent them from joining servers/worlds if they don't accept the pack!
  • Display a custom message on the prompt screen for clients above 1.17 and use the required-pack functionality.
  • Set different server resourcepacks per world, server or whole BungeeCord/Velocity network
  • Match server/world names with regex!
  • Per-version packs! Send the correct pack depending on the client's version and kick player if he uses a version without an available pack (requires ViaVersion or ProtocolSupport when used on a Spigot server and not Bungee!)
  • Automatically exclude Geyser/Floodgate players
  • Automatically generates the sha1 hashes!
  • Set packs via WorldGuard flags (requires WorldGuard above version 6.1.3)
  • Override xray texture packs (e.g. with a pack like this, please note that this isn't 100% reliable and could be bypassed using mods)
  • Language system with messages depending on the locale of the client
  • Extended MineDown formatting support for click and hover messages
  • Configurable delay before sending the pack to a player
  • Inform the user which pack the server send them if it was done automatically
  • Let users select a pack themselves. The pack can be re-applied on each login and will be used for resets on servers that don't have the pack
  • Remembers which pack a user has currently applied and doesn't resend the same pack on server switch
  • Kick players from the server which don't accept the resourcepack or send them to a specific server (that way you can have two versions of the same server, one with resourcepacks and one without)
  • Execute commands based on whether or not the player accepted the pack
  • Send a message or title to the player when he accepts, loads, denies or fails to download the resourcepack
  • Load screen ESC bypass protection with a timeout
  • Stop the user from joining a certain server in your network if he didn't accepted an optional the resourcepack before
  • Different set of actions for when it is the first time a player joins your server
  • ResourcePackStatusEvent (for Bukkit use the PlayerResourcePackStatusEvent) for developers to react on the accepting or denying of a pack in their own plugins
  • Compatible with AuthMe Reloaded.
    Do you need it to be compatible with more plugins? Contact me!
  • PlaceholderAPI placeholders: %frp_pack%, %frp_storedpack%, %frp_pack_<pack>_online%, %frp_pack_<pack>_stored%
Important Notes
This plugin is currently compatible with BungeeCord above 1.8, Velocity version 1.1.0, Spigot above 1.8.8 and clients above 1.8. Velocity support is experimental so please report any issues!
I generally try to keep backwards compatibility but sometimes it's not possible and you might need to install an older plugin version in order for it to work. (e.g. Spigot 1.12.2 might need a plugin version below 1.7.22)
If you notice an error and believe that it should still work then please contact me and I'll see if I can fix it.
Please also note that the Vanilla Minecraft client only applies server resource packs that are smaller than 100 MiB! (50MiB before 1.15, 250MiB starting in 1.18)
Also clients before 1.17 cannot use certain new SSL certificates for URLs (like Let's Encrypt) as they shipped with an old Java version (Java 1.8.0_51, a bug report regarding that was filed with Mojang which was fixed with the 1.17 release with Java 16) so you'll have to either use a different certificate or a non encrypted download (not recommended!)
The server is not able to detect client resource packs so this plugin only works with server resource packs!
In order for this plugin to work it hooks into internal Bungee code, this might result in issues if there is a Bungee update which changes its internal structure. I will try to keep the plugin working as well as possible (I use it myself after all) but if you believe that something broke without a plugin update being available please contact me asap!
Similar issues might also arise if plugins change Bungee internals in unsupportable ways. Currently the only plugin known to cause this issue is SKungee. Unfortunately the only way around it (besides SKungee fixing the issue) would be to either uninstall SKungee or install Force Resourcepacks on the Spigot server instead of on the Bungee.
Statistics
Commands
/frp

Main plugin setup command
/usepack
Allows players to list packs and apply them
/resetpack
Reset the pack of a player.
See the documentation for all commands. All commands and functions also have permissions that are listed on the documentation page!
Config
You can find the default configs for running the plugin on Bungee and Bukkit on gist!

They are slightly different, read this update note for information on how the Bukkit config differs from the Bungee one or just take a look at the default configs linked previously.
Spoiler: Generate pack hashes manually
(Plugin versions above 1.6.5 will try to generate the sha1 hashes automatically and include a /frp generatehashes command!)
About the client freeze
When a server resource pack is send to a client it will shortly freeze after the download is complete. (Same as manually applying a local pack) This happens because the client has to reload all resources, check which resources overlap and do some other calculation and manipulation with them. (Like stitching all the textures together to a single image like they were in the first texture pack format) It's not a download issue as the client will locally cache the pack files and not re-download them if their hash didn't change.
How long this takes generally depends on the PC's performance and the size of the textures (HD packs take longer) that are used in all resource packs that the player has applied. (So even if the server resource pack doesn't contain any HD textures or textures at all the client will still completely reload all locally applied resource packs) This is something that has to be fixed in the client by Mojang for example by only reloading resources that changed. There's not a lot I can do about that offer than advice people to put pressure on Mojang to improve that behaviour.
1.14 and 1.15 have some major improvements there so suggest players to use these over old versions if they have issues with your server resourcepack!
External Requests

This plugin makes certain web requests to external servers which might disclose some information about your machine, your game server and the plugin usage. You can opt out of all requests and none of those requests will download any executable data!
It submits metrics to bStats.org as well as my own servers. You can opt-out by changing the config option disable-metrics in the plugin's config.yml or in the plugins/bStats/config.yml file!
It also includes an update checker to provide you with information regarding new versions in the console/log or if you have certain permissions, that checker can be disabled with the setting update-check.
Terms
This plugin is licensed under GPLv3. By purchasing this resource you are gaining the rights stated in the license. E.g. you can receive the source code either in form of GitLab repo access, a manual download or a physical copy (if shipping is paid). Contact me for that.
You are not allowed to distribute this plugin in any form to anyone who has not obtained the right to use the plugin themselves unless you follow the terms described in the previously mentioned license. All of the rights given to you can be revoked at any time by the author in the case that the terms were violated as outlined in the license.
By downloading you accept the previous terms and that this resource is distributed without any (not even implied) warranty or liability by the author.
Purchases are not subject to VAT according to §19 (1) of the German UStG.
This product is not affiliated with Mojang or Microsoft nor does it use copyrighted material of the game "Minecraft" unless under the assumption of Fair Use. (Screenshots/Videos)
If you have any issues or questions about this resource that the documentation doesn't already answer feel free to contact me any time! The best way is via the issue tracker
or the
discussion thread to this resource. If you have private information to share then feel free to send a
a private message.
I should always be able to get back to you with an answer in less then 12 hours ‒ during East Coast working hours it can even be under 1 hour!
Author
COSMO
First release
Last update
Rating
4.33 star(s) 3 ratings

More resources from COSMO

Share this resource

Latest updates

  1. 1.12.32

    1.12.32
  2. 1.12.31

    1.12.31
  3. 1.12.30

    1.12.30

Latest reviews

perfect for our needs
Doesnt work sadly

[WARNING] Exception encountered when loading plugin: ForceResourcepacks
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
de/themoep/resourcepacksplugin/core/MoepMetrics.lambda$postUpdate$3(Ljava/util/Map;)V @325: invokevirtual
Reason:
Type 'java/lang/Object' (current frame, stack[3]) is not assignable to 'java/lang/RuntimeException'
Current Frame:
bci: @325
flags: { }
locals: { 'de/themoep/resourcepacksplugin/core/MoepMetrics', 'java/util/Map', 'java/lang/Object' }
stack: { 'de/themoep/resourcepacksplugin/core/MoepMetrics$Plugin', 'java/util/logging/Level', 'java/lang/StringBuilder', 'java/lang/Object' }
Bytecode:
0000000: 2a2a b400 762b b702 974d 2cb6 00a3 1302
0000010: 99b6 029c 9900 dbbb 029e 59b7 029f 2c13
0000020: 0299 b602 a0b6 02a4 b602 a8b6 02ae 4eb2
0000030: 0131 3a04 0336 052a b601 439a 001a 2d13
0000040: 02b0 b602 b599 0014 2d13 02b0 b602 b7b6
0000050: 02ba 9900 0704 a700 0403 3605 a700 053a
0000060: 0615 0599 008c 2d13 02bc b602 b599 0082
0000070: 2d13 02be b602 b599 0017 2d13 02be b602
0000080: b7b6 02c1 b802 c43a 04a7 0005 3a06 2d13
0000090: 02bc b602 b7b6 02c1 1302 c6b6 02ca 3a06
00000a0: 1906 3a07 1907 be36 0803 3609 1509 1508
00000b0: a200 1d19 0715 0932 3a0a 2ab4 007c 1904
00000c0: 190a b901 2b03 0084 0901 a7ff e22d 1302
00000d0: ccb6 02b5 9900 1b2d 1302 ccb6 02b7 b602
00000e0: ba99 0009 2a19 06b5 007a a700 053a 07a7
00000f0: 0064 4d2a b400 7cb2 02cf 2ab6 012e 9a00
0000100: 0913 02d1 a700 132a b601 4399 0009 1302
0000110: d3a7 0006 1302 d5b9 012b 0300 2ab4 007c
0000120: b202 cf2c b602 d6b9 012b 0300 a700 274d
0000130: 2ab4 007c b202 cfbb 00c2 59b7 00c3 1302
0000140: d8b6 00c7 2cb6 02db b600 c7b6 00ce b901
0000150: 2b03 00b1
Exception Handler Table:
bci [55, 92] => handler: 95
bci [55, 92] => handler: 95
bci [122, 137] => handler: 140
bci [215, 234] => handler: 237
bci [215, 234] => handler: 237
bci [0, 239] => handler: 242
bci [0, 239] => handler: 303
bci [0, 239] => handler: 303
bci [0, 239] => handler: 303
Stackmap Table:
full_frame(@85,{Object[#2],Object[#12],Object[#120],Object[#690],Object[#289],Integer},{})
same_frame(@89)
same_locals_1_stack_item_frame(@90,Integer)
same_locals_1_stack_item_frame(@95,Object[#4])
same_frame(@97)
same_locals_1_stack_item_frame(@140,Object[#659])
same_frame(@142)
full_frame(@172,{Object[#2],Object[#12],Object[#120],Object[#690],Object[#289],Integer,Object[#642],Object[#642],Integer,Integer},{})
same_frame(@205)
same_frame(@234)
same_locals_1_stack_item_frame(@237,Object[#4])
full_frame(@239,{Object[#2],Object[#12],Object[#120]},{})
full_frame(@242,{Object[#2],Object[#12]},{Object[#61]})
full_frame(@263,{Object[#2],Object[#12],Object[#61]},{Object[#7],Object[#289]})
full_frame(@276,{Object[#2],Object[#12],Object[#61]},{Object[#7],Object[#289]})
full_frame(@279,{Object[#2],Object[#12],Object[#61]},{Object[#7],Object[#289],Object[#120]})
full_frame(@303,{Object[#2],Object[#12]},{Object[#4]})
append_frame(@339,Object[#4])

at de.themoep.resourcepacksplugin.bungee.ForceResourcepacks.onEnable(ForceResourcepacks.java:73)
at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:266)
at net.md_5.bungee.BungeeCord.start(BungeeCord.java:298)
at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
  • Anonymous
  • 5.00 star(s)
  • Version: 1.11.23.1
Please update to latest version.
Tags
None
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock