GuestMode icon

GuestMode -----

Disables Players without the given Permission to Craft, Build, break Blocks etc.



GuestMode is a Plugin inspired by the "Guest"-Permission of Minecraft Bedrock Edition and used by my own Server which denies Players from Building or Breaking Blocks by default.

If installed GuestMode simply cancels any Crafting, Inventory (Chest), Item Looting, Item Dropping, Crop Trampling, Redstone usage and so on for Players without the " guestmode.play"-Permission set. (I can recommend LuckPerms for Permissions because it's easy to use with it's online Editor)

This Plugin comes with a simple Config you can alter to your needs. Just take a look at the "If you want to config..."-section in this Post!

Latest-Update-Video:


  1. Download the Plugin
  2. Drop the Plugin into your plugins Directory (on your desired Server)
  3. Use /plugman (re-)load GuestMode or restart/reload your Server
  4. (If not done already) Create a "Member" Group on your Permissions ... This Plugin requires to have some Permission system running otherwise your Players are unable to do Stuff!
  5. Add the guestmode.play-Permission to the "Member" Group (or whatever it's called on your Server)
  6. Run /unguest <Player> (e.g. /unguest D3thw0lf) to unguest Players or manually add them to your Members Group so they can play. Make sure you've edited the "commands to run"-section in your Config.
  7. Done :)

Since the Plugin now has at least 2 "useful" Commands I think I'll add them here. :D
  • /gminf | /guestmode:gminf
    • Shows Information about the Plugin (OP only)
  • /gmworld | /guestmode:gmworld
    • Shows if the current world is protected (OP only)
  • /unguest <Player> | /guestmode:unguest <Player>
  • /guestmode:reload

This is the default Config file you can use if you messed it up. The first Option (off by default) keeps your Guests healed and well fed. Hehe. :3

Default Config.yml:
Code (YAML):
# Config file for GuestMode.
# This file was originally created by version 2.1.0 (SNAPSHOT)
config-version
: 1
#
#
# Heal Guests - Enables that Guests get healed while they're moving.
#               This CAN be very stressfull for your Server on a high Playercount (if you have small Hardware for example) so this is default off.
#
# Disable Hunger - If enabled your Guests won't suffer from Hunger
#                  ATTENTION: This only keeps your Players fed but never insta-heals them! Enable "HealGuests" to also keep them fully healed all the time.
#
# Gamemode on Join - The Gamemode a Guest gets on Login
#                     '' = disabled
#                     Valid Gamemodes: Survival, Creative, Adventure, Spectator
#
# CommandsToRun - Commands running on /unguest <Player>
#                 guestmode.unguest Permission required
#                 You can use <Player> (for using a Playername)
#                 Or you can use <UUID> (for using the Players UUID) on Commands (requires them to at least login once)
#                 [] = disabled
#
#
# CommandsOnJoin - Commands running on Join for unguested Players
#                  (default this is empty just build a list like on CommandsToRun)
#                  [] = disabled
#
# RunCommandsAs - Choose if the Current Player or the Console should run the Commands
#                 Allowed Values: Player | Console
#
# DisallowMultipleUnguest - Disable this if you prefer the old way of unguesting
#                           this disables the 'is online' check and also the prevention of doubled unguesting
#                           sadly there's no other way to prevent this (as far as I can see)
#
# GuestsCanChat - If this is disabled your Guests can no longer use chat to talk.
#                 If you run Commands on Join you need to set RunCommandsAs to 'Console' for them to work.
#
# GuestsCanDie - If disabled your Guests are unable to die
#                They also do not drop EXP and Items and should never see any Deathscreen
#                There's also no message in chat
#
#
HealGuests
: false
DisableHunger
: false
GamemodeOnJoin
: 'Adventure'
CommandsToRun
:
- 'lp user <Player> permission set group.member true'
- 'lp user <Player> permission unset group.default'
- 'gamemode survival <Player>'
CommandsOnJoin
: [ ]
RunCommandsAs
: Console
DisallowMultipleUnguest
: true
GuestsCanChat
: true
GuestsCanDie
: true

#
# Particles
#
#
# BlockedActionParticles - The Particles shown if any blocked Action was performed.
#                          '' = disabled
#
# BlockedActionParticleAmount - The Amount of Particles to spawn.
#                               0 = just one Particle
#
# BlockedWorlds - List of Worlds you want GuestMode to be active
#                 [] = enable in all
#
# List of valid Particles:
#                               [ BARRIER, BLOCK_CRACK, BLOCK_DUST, BUBBLE_COLUMN_UP, BUBBLE_POP, CAMPFIRE_COSY_SMOKE, CAMPFIRE_SIGNAL_SMOKE,
#                               CLOUD, COMPOSTER, CRIT, CRIT_MAGIC, CURRENT_DOWN, DAMAGE_INDICATOR, DOLPHIN, DRAGON_BREATH, DRIP_LAVA, DRIP_WATER,
#                               DRIPPING_HONEY, ENCHANTMENT_TABLE, END_ROD, EXPLOSION_HUGE, EXPLOSION_LARGE, EXPLOSION_NORMAL, FALLING_DUST, FALLING_HONEY,
#                               FALLING_LAVA, FALLING_NECTAR, FALLING_WATER, FIREWORKS_SPARK, FLAME, FLASH, HEART, ITEM_CRACK, LANDING_HONEY, LANDING_LAVA,
#                               LAVA, LEGACY_BLOCK_CRACK, LEGACY_BLOCK_DUST, LEGACY_FALLING_DUST, MOB_APPEARANCE, NAUTILUS, NOTE, PORTAL, REDSTONE, SLIME,
#                               SMOKE_LARGE, SMOKE_NORMAL, SNEEZE, SNOW_SHOVEL, SNOWBALL, SPELL, SPELL_INSTANT, SPELL_MOB, SPELL_MOB_AMBIENT, SPELL_WITCH,
#                               SPIT, SQUID_INK, SUSPENDED, SUSPENDED_DEPTH, SWEEP_ATTACK, TOTEM, TOWN_AURA, VILLAGER_ANGRY, VILLAGER_HAPPY, WATER_BUBBLE,
#                               WATER_DROP, WATER_SPLASH, WATER_WAKE ]
#
#
BlockedActionParticles
: 'SMOKE_NORMAL'
BlockedActionParticleAmount
: 0
BlockedWorlds
:
- world
- world_nether
- world_the_end

#
# Block Command Usage - If enabled, Players without the guestmode.play Permission are unable to use any Command (except the ones you're allowing)
#
# Allowed Commands - The List of Commands that a Guest is able to use (requires that BlockCommandUsage = true)
#                    [] = disabled
#
BlockCommandUsage
: false
AllowedCommands
:
- spawn

#
# Blocking Types
# Just disable what you don't need or want to be enabled.
#
# true = blocked
#
# BlockedInteractMaterials  - List all Materials (Items/Blocks) Guests should be unable to interact with.
#
# ExtraBlockedPlacement     - List all Materials (Items/Blocks) your Guests should never be able to place.
#                             This list is always checked even if you allow the placement of blocks!
#
# ExtraBlockedBreaking      - List all Materials (Items/Blocks) your Guests should never be able to break.
#                             This list is always checked even if you allow the breaking of blocks!
#
#
#                             Lists are NOT case sensitive but I recommend it for better readability :)
#                             Legacy Materials are also blocked by default (do NOT list them here)
#                             Do or keep [] to disable those extra lists!
#
BlockPlacement
: true
BlockBreak
: true
BlockInteract
: true
PhysicalInteract
: true
BucketFilling
: true
BucketEmptying
: true
OpenInventories
: true
PassiveEntityDamage
: true
AggressiveEntityDamage
: true
TargetByEntitys
: true
ItemPickup
: true
DropItemsFromInventory
: true
DragItemsFromInventory
: true
Elytra
: true
EnterBed
: true
BlockedInteractMaterials
:
- FLINT_AND_STEEL
- FIREWORK_ROCKET
- SPLASH_POTION
- LINGERING_POTION
- ELYTRA
- LEVER
- DAYLIGHT_DETECTOR
- CROSSBOW
- BOW
- TRIDENT
- LEAD
- SHEARS
- FISHING_ROD
- SNOWBALL
- FIRE_CHARGE
- ENDER_PEARL
- ENDER_EYE
- END_CRYSTAL
- SWEET_BERRY_BUSH
- BELL
- TNT
- JUKEBOX
- ITEM_FRAME
- PAINTING
- OAK_TRAPDOOR
- SPRUCE_TRAPDOOR
- BIRCH_TRAPDOOR
- JUNGLE_TRAPDOOR
- ACACIA_TRAPDOOR
- DARK_OAK_TRAPDOOR
- CRIMSON_TRAPDOOR
- WARPED_TRAPDOOR
- OAK_BOAT
- SPRUCE_BOAT
- BIRCH_BOAT
- JUNGLE_BOAT
- ACACIA_BOAT
- DARK_OAK_BOAT
- OAK_BUTTON
- SPRUCE_BUTTON
- BIRCH_BUTTON
- JUNGLE_BUTTON
- ACACIA_BUTTON
- DARK_OAK_BUTTON
- CRIMSON_BUTTON
- WARPED_BUTTON
- STONE_BUTTON
- POLISHED_BLACKSTONE_BUTTON
- OAK_DOOR
- SPRUCE_DOOR
- BIRCH_DOOR
- JUNGLE_DOOR
- ACACIA_DOOR
- DARK_OAK_DOOR
- CRIMSON_DOOR
- WARPED_DOOR
- OAK_FENCE_GATE
- SPRUCE_FENCE_GATE
- BIRCH_FENCE_GATE
- JUNGLE_FENCE_GATE
- ACACIA_FENCE_GATE
- DARK_OAK_FENCE_GATE
- CRIMSON_FENCE_GATE
- WARPED_FENCE_GATE
ExtraBlockedPlacement
: [ ]
ExtraBlockedBreaking
: [ ]
Default Messages.yml:
Code (YAML):
# Config file for GuestMode.
# This file was originally created by version 1.7.0 (SNAPSHOT)
#
# Default (en_us, de_de & es_es) Translation by D3thw0lf | https://twitch.tv/woweepaw
# <Translation> <YourNameHere> | <YourWebsite>
#
# Language Codes: https://minecraft.gamepedia.com/Language
#
##############################################################################################
#
# UnguestMessage - Message shown if someone allowed is using /unguest <Player>
#                  '' = disabled
#
# NoPermissionMessage - Message shown if someone not allowed is using /unguest <Player>
#                       '' = disabled
#
# MessageOnPlayerJoin - The Message shown to Guests when they're joining. Use \n for new Lines
#                       '' = disabled
#
# BlockedActionMessage - The Message shown if any blocked Action was performed.
#                        '' = disabled
#
#
# default - The Language used if the clients selected language is not added/supported (yet)
#
default
: en_us
lang
:
  en_us
:
    UnguestMessage
: '&a<Player> is no longer in GuestMode'
    NoPermissionMessage
: '&cYou don''t have permission to run that Command.'
    MessageOnPlayerJoin
: '&e&lYou''re in GuestMode.\n&9&lPlease contact an &c&lAdmin&9&l to get permissions.'
    BlockedActionMessage
: '&cGuests can''t do that. Please contact an Admin to get permissions.'
  de_de
:
    UnguestMessage
: '&a<Player> ist nicht länger im GuestMode'
    NoPermissionMessage
: '&cDu hast keine Berechtigung für diesen Befehl.'
    MessageOnPlayerJoin
: '&e&lDu befindest dich im Gastmodus.\n&9&lBitte kontaktiere einen &c&lAdmin&9&l um freigeschaltet zu werden.'
    BlockedActionMessage
: '&c&lGäste können dies nicht tun. Kontaktiere einen Admin um freigeschaltet zu werden.'
  es_es
:
    UnguestMessage
: '&a<Player> ya no está en modo invitado'
    NoPermissionMessage
: '&cNo tiene permiso para ejecutar ese comando.'
    MessageOnPlayerJoin
: '&e&lEstás en modo invitado.\n&9&lPóngase en contacto con un &c&lAdministrador&9&l para ser desbloqueado.'
    BlockedActionMessage
: '&c&lLos invitados no pueden hacer eso. Póngase en contacto con un administrador para obtener permisos.'

I made this Plugin because I'm hosting a small survival Minecraft Server listed on some public Serverlists and wanted to keep the Whitelist off so that Players can join the World, play or just hang out with us. This ended up in some Grief (oh wonder) so "GuestMode" was born to at least have some "first" protection that don't require a(nother) big plugin, Worldguard rules (mess) or thousands of permissions to work. Simple as that.

I think my plugin can maybe be helpful to such Servers that want a simple but effective way keeping new Players in a sort of "Guestmode" first before approval (e.g. small Survival Communitys allowing Friends to invite Friends but don't trust anyone new joining). ^^

You can try the Plugin or play with us on pawsome.kaefgames.com (or paws.kaefgames.com:25577, mainly a German speaking Server but English is fine, too). :)

PS: Haven't found something similar. You can tell me about similar and working Plugins and I would love to list them here, too. ^w^

  • *Done since 1.2.0* Configurable Particles on blocked Action
  • *Done since 1.2.0* Configurable Message on blocked Action
  • *Done since 1.3.0* Per World Usage
  • *Done since 1.4.0* Gamemode for Guests (on join)
  • *Done since 1.5.0* Blocking Command usage (with exceptions in Config) | Suggested by DeadX
  • *Done since 1.6.0* Enable Players to Unguest others (requires Permissions)
  • *Done since 1.7.0* Multilanguage Messages
  • *Done since 1.8.0* Block more Items | Partly Suggested by RabidHuman
  • *Done since 1.9.0* Run Commands on Join | Suggested by RabidHuman
  • *Done since 1.9.0* Move the blocked Materials part from Code to Config so everyone is able to add new materials (items/blocks) on their own. :)
  • *Done since 1.9.0* Run Commands from Config as-Option (e.g. Console, Player etc.)
  • *Done since 1.9.2* Reload Command | Suggested by seshipma
  • *Done since 1.9.4* Block Guests using/interact with Itemframes | Suggested by Atuer
  • *Done since 1.9.5* Block Vehicle use/break | Suggested by Atuer
  • *Done since 1.9.9* Completly disable Hunger for Guests | Suggested by TintedMint on Discord
  • *Done since 1.9.9* Split "Entity Damage" into passive and aggressive mobs on config | Suggested by romibi on Discord
  • Guests can't leave regions | Suggested by DeadX
    (cancelled/no longer planned, please use worldedit/guard in combination for region related blockings)
  • Eating more Cookies... Drinking some Ko-fi

This Plugin uses the players client selected language as a base for the translation. You can add more languages by copy the enUS-translation as a base and add the copy to the end of the file. Remember to change the language code of the copy (e.g. enUS) to your translated language. You can find a list with accepted codes in the file's comment (link)

If a player switches his language in client e.g. from enUS to deDE (Ger) he/she will see every message the plugin outputs in deDE instead of enUS.

If any language you've added is (for some reason) not supported or no longer supported the plugin will use the set "default" language (e.g. enUS) for any other language that's not supported.

Have fun translating and please do not hesitate to share yours with us. :)

If you do NOT want to support more than one language, remove the others and set the default to your language or leave it to enUS as a fallback!

List of Servers using my Plugin:
- PawsomeMC (pawsome.kaefgames.com)
- World of Apollo (worldofapollo.com)
- MinecraftersWorld (54.211.32.88:25565)
- Peptopia (play.peptopia.net:25565)
- Hy-Brasil MC (hy-brasil.mc.gg)
- No other yet. Let me know if you do and want to get listed. :3

Feedback? Suggestions? Problems?
Support is mostly given over Discord so I would prefer this Method but you can ofc. write your Ideas, Problems etc. into the Discussions section. I would love to read about them (hopefully no Problems ofc. ^^)


If you like, just give some Stars (or follow me on Twitch ;3) ... every Star counts (at least that's what I heard ^^). I'm new to this Plugin posting thing but don't and please never post Issues (e.g. Crashes) into this area. Do this on Discussions, please. <3

Because I was asked that lately: No! I do not allow to re-post, re-code or decompile any of my work. If you want a specific Version being supported consider to either code this kind of Plugin completly yourself or just wait until I find the time and desire to do so. [​IMG]
[​IMG]
Resource Information
Author:
----------
Total Downloads: 3,118
First Release: Jan 4, 2020
Last Update: Jan 22, 2022
Category: ---------------
All-Time Rating:
12 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings