Mod
Better Whitelist
No reviews yet
A configurable whitelist system for Minecraft
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Better-Whitelist provides a basic whitelist system for your server that you can adapt to your use case.
The mod is required both on the server and any clients connecting to the server.
The whitelist is configured using μScript, but you don't have to be good at programming to use this mod.
A config file with some additional details will be created when you first start your server with the mod.
A simple config for Better-Whitelist could look as follows (please note that you'd probably have to add exceptions for client-side mods with optional server-side components when using this):
// convert a mod to a simpler representation to save bandwidth
simplify = { mod -> { id = mod.id, version = mod.version } }
// all non-serverside mods present on the server
sharedMods = mods::values()
::filter({ v -> v.environment != 'server' & v.id != 'java' })
::map(simplify)
// ensure the client has the correct version of every non-serverside mod on the server
clientMissing = challenge({ arg ->
arg::filter({ v -> !mods::values()::anyMatch({ m -> v.id == m.id & v.version == m.version }) })
}, sharedMods)
assert(clientMissing::isEmpty(), 'You lack required mods: ' || clientMissing)
// ensure the client has no additional mods that would be required on the server
clientAdditional = challenge({ arg, fn ->
clientSideMods = mods::values()::filter({ v -> v.environment != 'client' & v.id != 'java' })
clientSideMods::filter({ v -> !arg::anyMatch({ m -> v.id == m.id & v.version == m.version }) })::map(fn)
}, sharedMods, simplify)
assert(clientAdditional::isEmpty(), 'You have unsupported mods: ' || clientAdditional)
// filter resource packs for X-Ray packs
bannedWords = listOf('xray', 'x-ray', 'cheat')
assert(!challenge({ ->
resourcePacks::map({ pack -> pack.name || ' ' || pack.displayName || ' ' || pack.description })
})::anyMatch({ v -> bannedWords::anyMatch({ word -> v::toLower()::contains(word) }) }), "Please don't cheat, " || user.name)
The following things are available to your scripts:
- All methods from the μScript standard library (including date/time, meaning you can temporarily whitelist or blacklist users or create countdowns)
resourcePacks(client only): a list of resource packs, each of which has aname,displayNameanddescriptionprintln('message')(both): a function for debuggingmods(both): a list of loaded mods with the same fields as the result ofmod()mod('id')(both): information about a specific mod (or null):id,name,description,authors(list of strings),contributors(list of strings),version,environment(eitherclient,serveror*),license,contact(same as FMJ),depends(list of strings)assert(bool)(server): assert that something is true and kick the player if it's not (optionally, add a message as the second parameter)challenge({->closure}, additional arguments...)(server): send a closure to the client to be executed there. The arguments may contain other closures.user(server): information about the user trying to log in, namely theiridandname
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers