TexturePackMenu
Download Latest Release
Source available on GitHub (open source, pull requests accepted)
View Changelog
IMPORTANT NOTE: Spout is required and this will only work for players using the Spoutcraft client.
Description
This plugin will override the player's normally chosen texture pack while they are on your server. They will be set to a default texture pack of your choice when they first connect, after which they can choose from a list of available texture packs you have selected. After they choose a different texture pack from your list, their choice will be remembered on subsequent logins.
This will allow you to prevent players from using transparent texture packs to cheat (finding ores and hidden chests easily), and allow players to switch between popular texture packs without leaving the server.
Command
/texture - show the texture pack selection menu. In-game players only.
/texture reload - reload the texture pack list from config.yml.
/texture reset <player> - reset the texture pack for the specified player to the server default. This can be useful if a player selects a texture pack which is larger than their allocated memory can handle.
Permissions
These are "superperms" (built-in Bukkit) permissions, so older Permissions plugins will not be able to affect them.
texturepackmenu.texture (granted by default) - allows the use of the /texture command. Since it is granted by default to all players, if you don't want certain players to be able to use it, you will need to revoke the permission.
texturepackmenu.reload (default Ops and server console only) - allows use of the /texture reload command.
texturepackmenu.reset (default Ops and server console only) - allows use of the /texture reset <player> command.
Setup Info
To require that players use the Spoutcraft client on your server, you can set this option in Spout's config.yml file:
ForceSinglePlayerClient: true
You will need to edit the default config.yml for this plugin to contain a list of texture pack names and download URLs that you have chosen. Editing the file should be pretty straightforward, as it is formatted for ease of modification. You can see the default config.yml file here.
It is even possible to allow players to keep their own texture pack by default (instead of overriding it) and essentially just use the plugin to showcase other texture packs.
If you appreciate this plugin, you are welcome to .
Thanks to the following people who have been gracious enough to donate: Jeremie Swartz
@zwollner
I can only suggest taking it up with Dynmap's mikeprimm with the info you've gathered, maybe he'll have some idea why Dynmap would be causing getCommand("texture") to return null.
@Brettflan
Disabled dynmap, and it started working. Pretty sure it doesn't have any "texture" command tho. Seems like it's trying to do something with it tho since it detects it:
[INFO] [dynmap] Found Spout plugin: TexturePackMenu
Do you maybe have another plugin which is taking the "texture" command before TPM gets a chance? Try removing other plugins to see.
@Brettflan
Odd, I don't get it... I tried the same version of CB as you too, and still not working. I even tweaked the code to try and find the issue, but all I know is the call to: getCommand("texture") is returning null
oh well.... I'm tired of debugging. :-/
Hmm. Just tried it and it loaded fine for me:
I am using the latest beta build of CraftBukkit, though (1.3.2-R0.1), and loading no other plugins than Spout and TexturePackMenu.
@Brettflan
Ya, I didn't get it either. I was looking at your github code, and couldn't figure it out... Don't ya hate NullPointers :)
It's the latest dev version of spout: v1298
@zwollner
Your stack trace surprisingly doesn't make much sense to me; usually they're extremely useful in finding the problem. In this case though I don't see anything in the line it's indicating which should be possible to return null. Strange.
So that I can test it myself, what version of Spout are you running?
I put the file into my plugins folder and when i load my server no folder comes up please help! i am running 1.3.1 but using minecraft to play. I do want to configure the file though.
@d3voo
Are you having problems running it in 1.3.1? If so, please post more information. If not, please post indicating it's working for you.
If you haven't even tried it, please do so and post back as above.
make an update please :) .... 1.3.1
@LordBoos
Spoutcraft should be caching the texture pack on the client side and doing an MD5 checksum to verify that the existing texture pack on the client side matches the one on the server, and allowing the client to use it if so. If that's not working correctly, it's on Spout.
@DarkMein
As above, this is pretty much on Spout. However, texture pack files currently in use on the client side are also locked as read-only and shouldn't normally let the client overwrite the file while it's in use. Also as above, switching and renaming an already dowloaded texture pack to replace it, then switching back, should be correctly re-downloaded from the server due to the MD5 checksum verification done by Spoutcraft and Spout.
Again though, that's on them, nothing I can really do on my end to help without a very large amount of work which I'm not planning to do.
The plugin has a problem... if i replace the "default.zip" texture (Or the current texture that i'm using) to another (Ex: xray/transparent texturepack) it doesnt detects the change... If a cheater comes to my server i can't detect him... i have a 60 player server and i can't spy all the players. (I use orebfuscator (antixray) but.. whith this i can disable it and save more CPU)
Can you add a check of the space that occupies the file? If the size doesn't match it will be downloaded again.
Can you add something to prevent texturepack re-downloading at every login-in? Maybe some caching?
Damn,great plugin but you need to add that we can use it with the normal client!
I'm not sure. I tested with TexturePackMenu 1.0.8 on CB 1.2.5R4.0, SpoutPlugin 1212, and Spoutcraft 1503 and had a 19 MB texture pack set as default. It worked fine for me, though it was on a local VM so the download would be very quick. I don't have a live public server any more for better real-world testing.
It's possible that it would benefit from having the selected texture pack set to download with Spout before the player is officially logged into the server, but I'm not sure what that will entail or if it's really feasible.
@Brettflan
ok, what happened here is really weird for me. When you released your update 1.0.8 my "falling into the void" problem was gone!, and there were errors appearing in the console when users entered into the server, but it was ok.. And now Iv'e just updated the spout plugin for my server and the "falling into the void" problem is happening again with no errors in console.... could this be related to the smooth teleport feature or may be chunk caching? spout plugin version is 1212 and the spoutcraft client builds are 1503 please if you could give me some help here it would be really apreciated :), I would be glad to donate you some dollars if we can solve this out. thanks and sorry for my english
@Brettflan
thanks for the update.
@sidthesloth123
Confirmed, looks like they once again moved the CRCStore class in SpoutPlugin 1203.
So: Released 1.0.8 for those using SpoutPlugin 1203 and up.
@Brettflan
Im forcing the users to one default texture pack wich weights like 6mb and its hosted in my dropbox account, the connections are fine... I've found that this is a Spoutcraft client config related issue. So, will see if I can work it out, thanks anyways!