Zones

# Zones

This plugin allows server administrators and players to create and manage protected regions within their Minecraft
world. It provides a flexible system for defining areas, setting permissions, and controlling interactions within those
areas.

## Features

* **Region Creation:** Create regions using in-game selection or manual coordinates.
* **Sub-Regions:** Create sub-regions within existing regions for more granular control.
* **Permission Management:** Set detailed permissions for players within regions, controlling actions like breaking,
placing, interacting, and more.
* **Member Management:** Add and remove members from regions with specific permissions.
* **Region Overlap Control:** Configure whether regions can overlap.
* **Bypass Permissions:** Allow specific players to bypass region restrictions.
* **Configuration:** Customize messages and region settings through configuration files.
* **Beacon Visualization:** Visualize selected regions using temporary beacons.

## Commands

The plugin provides the following commands:

* `/zone create`: Creates a new region using the currently selected locations.
* Usage: `/zone create`
* Requires two locations to be selected using left and right click, starts selection if not present.
* Prevents creation if the new region would overlap an existing region, unless the `zones.create.overlap`
permission is set.
* `/zone subcreate`: Creates a new sub-region within an existing region using the currently selected
locations.
* Usage: `/zone subcreate [regionKey]`
* `regionKey` is optional, if not provided, the region at the player’s location will be used.
* Requires two locations to be selected using left and right click, starts selection if not present.
* Player needs to be considered an admin in the region, or have the `zones.subcreate.other` permission
* `/zone delete`: Deletes an existing region.
* Usage: `/zone delete `
* Requires the `regionKey` of the region to be deleted.
* Player needs to be the owner of the region, or have the `zones.delete.other` permission
* `/zone expand`: Expands an existing region by a specified amount.
* Usage: `/zone expand [overlap]`
* Player needs to be an admin of the region, or have the `zones.expand.other` permission
* If `overlap` is set to `true` and the player has the `zones.expand.overlap` permission,
* the region will be expanded even if it overlaps with other regions.
* `/zone info`: Displays information about a region.
* Usage: `/zone info [regionKey]`
* If `regionKey` is not provided, the region at the player’s location will be used.
* To show region members, the player needs to be an admin of the region, or have the `zones.info.other` permission
* `/zone list`: Lists all regions the player is a member of.
* Usage: `/zone list`
* Only shows regions the player is a member of, unless the player has the `zones.list.other` permission
* `/zone cancel`: Cancels the current region selection.
* Usage: `/zone cancel`
* `/zone set`: Sets a permission for a member of a region.
* Usage: `/zone set `
* `` is the key of the region.
* `` who to set the permission for.
* e.g., `Player1` – to create or modify a group, use `+group-GROUPNAME`, where GROUPNAME can be any name.
* `` is the permission to set (e.g., `role`, `break`, `place`, `interact`).
* `` is the value to set for the permission (
* e.g., `owner`, `true`, `false`, `*`, `!*`, `GRASS_BLOCK`, `!GRASS_BLOCK`).
* `/zone rename`: Renames a region.
* Usage: `/zone rename `
* `` is the key of the region, `` is the new name of the region.
* Player needs to be an admin of the region, or have the `zones.rename.other` permission
* `/zone select`: Selects a region.
* Usage: `/zone select [regionKey]`
* If `regionKey` is not provided, the region at the player’s location will be used.
* Visually highlights the region in the world using particles.
* Player needs to be a member of the region, or have the `zones.select.other` permission
* `/zone mode`: Changes the selection mode.
* Usage: `/zone mode `
* `` is the new mode to set the player to.
* e.g., `3d` for 3D selection mode, `2d` for 2D selection mode.

* `/zone save`: Manually saves all regions to file.
* Usage: `/zone save`
* Admin only, requires the `zones.save` permission (not given by default)
* `/zone load`: Manually loads all regions from file.
* Usage: `/zone load`
* Admin only, requires the `zones.load` permission (not given by default)
* `/zone import`: Imports regions from another plugin.
* Usage: `/zone import `
* Currently only supports WorldGuard.
* Admin only, requires the `zones.import` permission (not given by default)

## Usage

### Creating a Region

1. Use the `/zone create` command to start the creation process.
2. Use left-click on a block to set the first corner of the region. A green beacon will appear.
3. Use right-click on a block to set the second corner of the region. A red beacon will appear.
4. Use the `/zone create` command to create the region.

### Creating a Sub-Region

1. Use the `/zone subcreate` command to start the creation process.
2. Select the two corners of the sub-region as described above.
3. Use the `/zone subcreate` command to create the sub-region within the region you are standing in or
use `/zone subcreate ` to create a sub-region within the specified region.

### Setting Permissions

1. Use the `/zone set ` command to set permissions for a member of a region.
* Example: `/zone set Player1 break true` allows “Player1” to break blocks in the specified region.
* Example: `/zone set Player2 break GRASS_BLOCK` allows “Player2” to break only `GRASS_BLOCK` blocks
in the specified region.
* Example: `/zone set Player3 interact !OAK_DOOR` denies “Player3” to interact with `OAK_DOOR`in
the specified region.
* Example: `/zone set Player4 place *` allows “Player4” to place all blocks in the specified region.
* Example: `/zone set Player5 break !*` denies “Player5” to break all blocks in the specified region.
* Groups:
* To assign a group, set the value of the permission `group` to the group name.
* e.g.: Create a group and assign permission: `/zone set +group-some-group-name break true`
* e.g. `/zone set ExamplePlayer group some-group-name`
* ExamplePlayer now inherits the permission `break` from the group `some-group-name`

### Viewing Region Information

1. Use the `/zone info` command to view information about the region you are standing in.
2. Use the `/zone info ` command to view information about a specific region.

## Integrations

### WorldGuard

Zones supports importing WorldGuard regions via the `/zone import WorldGuard` command. To use this feature,
you must have WorldGuard installed and enabled. Zones will automatically import all Cuboid regions, including
their members.

### WorldEdit

WorldEdit can only be used to modify blocks in a region if the executing player would be allowed to manually
modify the region.

### PlaceholderAPI

Zones provides multiple placeholders for use with the PlaceholderAPI plugin, displaying region information for the
region the player is standing in. It currently supports the following placeholders:

* `%zones_get_name%`
* `%zones_get_key%`
* `%zones_get_members%`
* `%zones_get_owner%`
* `%zones_get_min%`
* `%zones_get_min_x%`
* `%zones_get_min_y%`
* `%zones_get_min_z%`
* `%zones_get_max%`
* `%zones_get_max_x%`
* `%zones_get_max_y%`
* `%zones_get_max_z%`
* `%zones_is_member%`
* `%zones_can_place_hand%`
* `%zones_can_break_target%`
* `%zones_can__%`

## Design Choices

* **YAML Configuration:** The plugin uses YAML files for configuration and storage, making it easy to read and modify.
Additional storage options are planned for future releases.
* **Permission System:** The permission system is designed to be flexible and granular, allowing for fine-grained
control over player interactions.
* **Event-Driven:** The plugin uses Bukkit’s event system to handle player interactions, making it efficient and
responsive.
* **Caching:** The plugin uses a caching system to improve performance when checking permissions.

## Contributing

Contributions to the plugin are welcome! If you have any ideas for new features, bug fixes, or improvements, please feel
free to submit a pull request or open an issue.

## License

This plugin is distributed under the MIT License.

ZoneRental

# ZoneRental – Complete WorldGuard Region Rental System

**A comprehensive Minecraft plugin for managing rental regions with clickable signs, multi-world support, and complete lifecycle automation.**

![Version](https://img.shields.io/badge/version-3.2.0-blue)
![Minecraft](https://img.shields.io/badge/minecraft-1.21%2B-green)
![Platform](https://img.shields.io/badge/platform-Paper%20%7C%20Spigot%20%7C%20bukkit%20%7C%20purpur-orange)

## What is ZoneRental?

ZoneRental is a feature-rich rental management plugin that allows players to rent WorldGuard regions through clickable signs. The plugin handles the complete rental lifecycle including automatic expiration, block restoration, item storage, and economy integration.

Perfect for servers with player shops, market stalls, or any rentable spaces where you need automatic management and restoration.

## Why Download This?

– **Zero Manual Management** – Everything is automated from rental to expiration
– **WorldEdit Restoration** – Regions automatically restore to original state
– **Item Safety** – All items from containers are saved and retrievable
– **Multi-World Support** – Works across overworld, nether, end, and custom worlds
– **Flexible Configuration** – Per-region pricing, durations, and settings
– **Economy Integration** – Full Vault support with any economy plugin
– **Member System** – Allow friends to access your rented regions
– **Extension System** – Players can extend rentals with configurable limits
– **Complete Refund Tracking** – Full transaction history for all refunds
– **EzChestShop Integration** – Automatic shop removal on expiration

## Essential Information Before Downloading

### Requirements

**Required Dependencies:**
– Vault (economy API)
– WorldGuard 7.0.14+ (region management)
– WorldEdit 7.3.16+ (block restoration)
– Any economy plugin (EssentialsX, CMI, etc.)

**Optional Dependencies:**
– LuckPerms (advanced permissions)
– EzChestShop (automatic shop removal)

### Compatibility

– **Server Software:** Paper, Spigot, or any Paper-based fork
– **Minecraft Version:** 1.21+
– **Java Version:** Java 21 required (OpenJDK recommended)

### Installation Steps

1. Install required dependencies (Vault, WorldGuard, WorldEdit, Economy plugin)
2. Download ZoneRental JAR file
3. Place in `plugins/` folder
4. Restart server (configuration files will be auto-generated)
5. Configure `config.yml` to your preferences
6. Create WorldGuard regions: `/rg define `
7. Place signs and create rental signs: `/zrcreatesign `

## Core Features

### Rental Management
– **Clickable Signs** – Right-click to rent, shift-click to extend
– **Multi-World Support** – Same region names work independently across worlds
– **Automatic Expiration** – Regions automatically expire and restore
– **Extension System** – Players can extend rentals up to configured limits
– **Member Management** – Add/remove members to share rented regions
– **Teleportation** – Players can teleport to their rented regions

### Economy & Pricing
– **Vault Integration** – Works with any economy plugin
– **Per-Region Pricing** – Set custom prices for specific regions
– **Extension Pricing** – Configurable extension costs
– **Permission-Based Discounts** – VIP pricing through permissions
– **Full Refund System** – Admin resets provide 100% refunds
– **Extension Refunds** – Optional refunds when duration is reset

### Block Restoration
– **WorldEdit Integration** – Captures and restores block states
– **Entity Restoration** – Optionally restore entities (mobs, armor stands)
– **Biome Restoration** – Optionally restore biome data
– **Auto-Cleanup** – Configurable automatic schematic deletion
– **World-Aware** – Restoration happens in the correct world

### Item Storage
– **Container Scanning** – Automatically saves items from all containers
– **Player Retrieval** – `/zrretrieve` command to get stored items
– **Notification System** – Players notified when items are stored
– **Auto-Cleanup** – Items removed after retrieval

### Admin Tools
– **Command-Based Config** – All per-region settings via `/zroverride` commands
– **Region Groups** – Group regions for mass configuration changes
– **Duration Management** – Add, remove, set, or reset rental time
– **Auto-Verification** – Startup verification of region configurations
– **Refund History** – Complete transaction tracking per rental
– **Sign Protection** – Signs and support blocks are protected from breaking

### Integration Features
– **EzChestShop** – Automatic chest shop removal on expiration
– **WorldGuard** – Automatic member management
– **LuckPerms** – Full permission system integration
– **Notification System** – Configurable expiration warnings

## User Commands

– `/zr help` – Show help menu
– `/zrinfo ` – View rental information
– `/zrlist [player]` – List active rentals
– `/zrextend ` – Extend a rental
– `/zrretrieve` – Get stored items from expired rentals
– `/zrmember add/remove ` – Manage members
– `/zrmembers ` – List members of rented region
– `/zrtp ` – Teleport to rented region

## Admin Commands

– `/zrcreatesign ` – Create rental sign
– `/zrreload` – Reload configuration
– `/zrreset ` – Reset rental with full refund
– `/zrduration [time]` – Modify duration
– `/zroverride ` – Per-region settings
– `/zrgroup ` – Manage region groups
– `/zrremove ` – Remove rental setup completely
– `/zrrefundhistory ` – View refund transaction history
– `/zrverify` – Verify region configurations

## Permissions

**User Permissions (default: true):**
– `ZoneRental.rent` – Rent regions
– `ZoneRental.extend` – Extend rentals
– `ZoneRental.retrieve` – Retrieve stored items
– `ZoneRental.info` – View rental info
– `ZoneRental.list` – List your rentals
– `ZoneRental.member` – Manage members
– `ZoneRental.members` – View members
– `ZoneRental.tp` – Teleport to rentals

**Admin Permissions (default: op):**
– `ZoneRental.admin.*` – All admin permissions
– `ZoneRental.admin.reload` – Reload plugin
– `ZoneRental.admin.createsign` – Create rental signs
– `ZoneRental.admin.reset` – Reset rentals
– `ZoneRental.admin.duration` – Modify durations
– `ZoneRental.admin.override` – Per-region settings
– `ZoneRental.admin.remove` – Remove rental setup
– `ZoneRental.admin.refundhistory` – View refund history
– `ZoneRental.admin.verify` – Verify configurations
– `ZoneRental.admin.bypass` – Bypass restrictions
– `ZoneRental.admin.breaksign` – Break rental signs
– `ZoneRental.admin.list.others` – List others’ rentals
– `ZoneRental.admin.group` – Manage region groups

## Configuration Files

The plugin creates six configuration files:

1. **config.yml** – Main configuration (economy, durations, messages)
2. **regions.yml** – Per-region overrides (managed via commands)
3. **groups.yml** – Region group definitions
4. **signs.yml** – Sign locations and support blocks
5. **storage.yml** – Item storage from expired rentals
6. **rentals.yml** – Active rental data (runtime)

Plus a `schematics/` folder for WorldEdit region snapshots.

## Quick Start Guide

1. **Install dependencies** (Vault, WorldGuard, WorldEdit, Economy plugin)
2. **Restart server** to generate configs
3. **Configure settings** in `config.yml`
4. **Create a WorldGuard region:** `/rg define shop1`
5. **Place a sign** where you want players to interact
6. **Create rental sign:** `/zrcreatesign shop1`
7. **Optionally customize:** `/zroverride price shop1 500.0`
8. **Done!** Players can now right-click the sign to rent

## Support & Documentation

– **Full Documentation:** See repository README.md
– **Build Instructions:** See BUILDING.md
– **Version History:** See CHANGELOG.md

## Source Code & License

– **Repository:** https://github.com/Warstorm548/ZoneRental
– **License:** AGPL-3.0 (open source)

## Development Note
– this plugin was Developed utilizing claude code, ai-assisted Development
– The plugin is tested manually in a test server environment to ensure minimal bugs and reduce issues that may be persent in the code.

ZonePractice Pro Duels

# ZonePractice Pro The Ultimate Minecraft PvP Duels Plugin

Elevate your Minecraft server with ZonePractice Pro, the most advanced practice / duels and matchmaking plugin available. Designed for high performance and total customizability, ZonePractice Pro delivers a next generation PvP experience. Players can unlock custom armor trims, shield patterns, and unique death effects. Navigate lobbies in style using wind charges, tridents, elytras, or spears.

## Key Features of ZonePractice Pro

### ⚔️ Modern PvP Ladder Types
+ TnT Sumo, MLGRush, Crystals, Cart, BedWars, Bridges, SkyWars, Fireball Fight, BattleRush
+ Sumo, Boxing, PearlFight, Spleef, Build, Basic

### ⚡ Asynchronous Arena System
+ High performance asynchronous arena copying for build modes
+ Highly configurable basic and build type arenas
+ Player hiding functionality for non build arenas
+ Unlimited concurrent matches in non build arenas

### 🛡️ Custom Player Kit System
+ Create custom kits inspired by popular PvP servers
+ Up to 4 personalized kits per player with extra items
+ Intuitive GUI for players to create and manage loadouts

### 🏆 Automated Server Events
+ Host engaging events easily including Brackets, Juggernaut, LMS, OITC, Splegg, Sumo, and TNT Tag

### ⚖️ Advanced Matchmaking and Queues
+ Unranked queues based on player divisions
+ Ranked queues powered by accurate ELO matchmaking
+ Clean two category page queue selector GUI

### 📊 Player Statistics and Divisions
+ Track Experience points, Wins, Kills, Deaths, and Streaks
+ Set minimum division requirements for ranked play
+ Beautiful GUI and Hologram leaderboards

### 👥 FFA and Party System
+ Dedicated FFA arenas featuring multiple ladders and independent stats
+ Robust Party System offering 6 distinct settings
+ Support for FFA, Split party games, and Party versus Party matches

### ⚙️ Premium Match Features
+ Fully customizable sidebar and below name health bars for every ladder
+ Exp bar cooldowns for Ender pearls, Arrows, and Golden Apples
+ Built in staff mode and advanced spectator mode
+ Duel rematch items, Nametag systems, and Round selectors

### 🚀 Unmatched Performance and Customizability
+ Incredible server performance with simple installation
+ Complete customizability utilizing version controlled config files
+ Comprehensive setup GUI for server administrators
+ Developer API included for custom integrations
+ MiniMessage chat formatting and PlaceholderAPI support
+ Custom death messages and sound effects
+ Seamless multiple world support to run alongside other minigames
+ Custom inventory items for a unique feel

## Important Installation Requirement

To guarantee high performance packet handling, ZonePractice Pro requires the PacketEvents API. Please ensure you install the latest release on your server before starting.

[Download PacketEvents Here](https://github.com/retrooper/packetevents/releases)

## Community and Support

[Join our Discord Community](https://discord.gg/xZy34zbnxe)

## Plugin Screenshots

ZonePractice Pro Gameplay Screenshot 1
ZonePractice Pro Gameplay Screenshot 2
ZonePractice Pro Gameplay Screenshot 3
ZonePractice Pro Gameplay Screenshot 4
ZonePractice Pro Gameplay Screenshot 5
ZonePractice Pro Gameplay Screenshot 6
ZonePractice Pro Gameplay Screenshot 7

ZoneCalculator

**ZoneCalculator – Minecraft Plugin**

A simple zone selector, block calculator, and outline visualization plugin for Paper/Spigot 1.21-1.21.11 servers.

**Features:**
– Zone Selection: Use a wooden axe to select two positions (left click = position 1, right click = position 2)
– Block Calculator: The /cal command calculates all non-air blocks in the selected cuboid area, showing a sorted list by block count
– Per-player selections stored automatically

**Commands:**
– /cal – Calculate blocks in selected area

**Permissions:**
– zonecalculator.use – Required to use the plugin (default: true)

**Usage:**
– Hold a WOODEN_AXE in your main hand
– Left-click a block to set position 1
– Right-click a block to set position 2
– Run /cal to see block counts

**Requires:**
– Paper 1.21+ or Spigot 1.21+
– Java 21

Zone PVP

# ZonePvP

ZonePvP adds contained PvP arenas directly into your Minecraft world.
PvP is ONLY active inside defined zones — your survival gameplay outside stays completely vanilla.

Enter a zone, receive a kit, fight nonstop, build your streak, and become the bounty.
Leave or die and your original inventory is instantly restored.

## Features

– PvP Zones – PvP only inside selected areas

– Instant Kits – Safe inventory saving & restoring

– Kill Streaks – Action-bar counter + progression upgrades

– Gear Upgrades

– Armor upgrades every 5 kills

– Netherite armor at 100 streak

– Netherite sword at 150 streak

– +16 arrows + golden apple per kill

– Streak Aura – Visual power effects at 25 / 50 / 100 kills

– Bounty System

– 10+ streak marks players as WANTED

– Announced only to players inside the zone

– Anti-Camp System – Combat-tagged players are pushed back into zones if they hug the border

– Death Handling

– Respawn inside the zone near the center

– Streak reset, kit reapplied

– Gear Protection

– Armor can’t break inside zones

– Fully repaired after each kill

(most of theses can be configured directly in the plugins config file)

## Safe & Isolated

No effects outside zones

No PvP outside zones

Survival worlds remain untouched

## Requires

**Spigot / Paper 1.21.1+
No client mods needed.**

## Why ZonePvP?

1. Competitive PvP without inventory loss
1. No escape or camping cheese
1. Clean progression & visual feedback
1. Zero impact on survival gameplay

– Created by [DarkFox](https://www.youtube.com/@DarkFoxStudiosOF)

Zombify

## Zombify

**Prevents villagers from dying when converting to zombie villagers on any difficulty**

Normally, on easy or normal difficulty, villagers may die when converting to zombie villagers, Zombify makes it so your villagers will never die during conversion!

### Chance of villager successfully converting to a zombie villager

| Difficulty | Chance (without the mod) | Chance (with the mod) |
|————|————————–|————————–|
| Easy | 0% | 100% |
| Normal | 50% | 100% |
| Hard | 100% | 100% |

Zombified Player – Kill Your Inner Zombie

[![CurseForge Downloads](https://img.shields.io/curseforge/dt/1075264?logo=curseforge&logoColor=black&label=&labelColor=orange&color=242424)](https://www.curseforge.com/minecraft/mc-mods/zombified-player) [![Modrinth Downloads](https://img.shields.io/modrinth/dt/zombified-player?style=flat&logo=modrinth&logoColor=black&label=&labelColor=18ED49&color=242424)](https://modrinth.com/mod/zombified-player) [![Supported Versions](https://cf.way2muchnoise.eu/versions/1075264(4F21AC).svg)](https://www.curseforge.com/minecraft/mc-mods/zombified-player) [![Discord](https://img.shields.io/discord/1388544059114786907?style=flat&logo=discord&logoColor=white&label=&labelColor=blue)](https://discord.gg/rSVp3nCpPx) [![Static Badge](https://img.shields.io/badge/Ko–fi-75D5E3?logo=ko-fi)](https://ko-fi.com/D1D71EVQVC)

# Zombified Player

This Mod **spawns a zombified version of the player after death**.

**Beta Version!** Please report any problems you find under: [issues](https://github.com/MC-Mods-Pete/ZombifiedPlayer/issues)

## Features
– spawns a zombified version of the player after death
– uses the players actuall skin (uses the steve skin as fallback)
– applies a zombified overlay to the skin
– the dead players inventory can be tranfered to his zombified version

The zombified player mob will use the same skin as the player (with a zombify overlay). Besides that the mob behaves like a regular zombie, but it will not burn in sunlight and it will not despawn.
![Zombified McModsPete](https://cdn.modrinth.com/data/cached_images/37a775099b4874ea960002c1af0ec43d14c3a34a_0.webp)

With a config option it is possible to **transfer the players inventory to the zombified player**. The player will have to fight and defeat the zombified version of himself to get back the items he lost after dying.
![Replace this with a description](https://cdn.modrinth.com/data/cached_images/b808fc724f0c3eb9d9e2452cea1348fb168e3a8b_0.webp)

Needed Mods:
– Fabric API
– Cloth Config

Optional Mods:
– Mod Menu

Zombified piglin’s only drop gold nuggets

I got annoyed trying to make a fast enough filter system for my gold farm so just made this instead.

At the moment it also removes killed by player drops as well as rotten flesh, If I can figure out how to add them back in I will.

Zombified Piglin restore anger loot

Restores the original Zombified Piglin loot mechanic like it was in 1.21

## Configuration

### Gamerule “spawn_zombified_piglin_always_with_sword_on_magma_block“

Forces Zombified Piglins to **always** spawn with a sword on magma blocks.
The default is “false“.

_This gamerule exists because_
* _starting with 1.21.11 Zombified Piglins can spawn with a spear:_
* _Piglins with spears can hit each other while attacking, which in turn causes retaliation/infighting and therefore lowering the overall effectiveness of farms_
* _The performed charge attack requires a lot more calculations when compared to a “normal” sword attack_
* _most gold farms use magma blocks anyway_
* _all other gameplay aspects are unaffected_

## Motivation/Why does this mod exist?

Gold farms got [significantly nerfed](https://bugs.mojang.com/browse/MC-56653) in [25w02a](https://minecraft.wiki/w/Java_Edition_25w02a).

See also: [More details, comparisons and arguments](https://github.com/litetex-oss/mcm-zombified-piglin-restore-anger-loot/blob/dev/MOTIVATION.md)

Zombified Piglin Drops OP Loot

The Zombified Piglin is OP datapack upgrades zombified piglins in Minecraft to become powerful and highly rewarding mobs. When defeated, they can drop overpowered items, enchanted gear, or rare resources, turning Nether exploration into a high-risk, high-reward experience.

This datapack adds exciting survival gameplay while keeping vanilla mechanics mostly intact. It’s perfect for challenge worlds, multiplayer servers, and chaotic progression runs.

Features

Zombified piglins drop OP items and rare loot

Enchanted weapons, armor, and valuable resources included

Makes Nether combat more rewarding

Risk-and-reward survival mechanic

Compatible with vanilla gameplay

Works in singleplayer and multiplayer