plugins:tulpencraftrental

TulpenCraft Rentals

Eigenschap Waarde
Plugin TulpenCraft Rentals
Status ๐ŸŸก Ontwerp / ontwikkeling
Versie 1.0.0 (gepland)
Platform Paper 26.2
Server(s) Survival
Onderdeel van netwerk Ja
Database MariaDB
Laatste controle 9 september 2026
Server Actief
Velocity โŒ Niet rechtstreeks
Lobby โŒ
Survival ๐ŸŸก Gepland
Events โŒ

TulpenCraft Rentals is een eigen TulpenCraft-plugin voor het beheren van verhuurbare ruimtes binnen Minecraft.

De plugin maakt het mogelijk om verschillende soorten ruimtes aan spelers te verhuren, waaronder:

  • ๐Ÿ  Woningen
  • ๐Ÿช Winkels
  • ๐Ÿ›๏ธ Kamers
  • ๐Ÿข Kantoren
  • ๐Ÿงฑ Bouwkavels
  • ๐Ÿ”ง Werkplaatsen
  • Andere verhuurbare ruimtes in de toekomst

De plugin koppelt een verhuurbaar object aan een bestaande WorldGuard-region.

WorldGuard blijft verantwoordelijk voor de daadwerkelijke bescherming van het gebied. TulpenCraft Rentals beheert daarbovenop het huurcontract, de huurder, huurperiode, betaling, toegangsrechten, eventuele medewerkers en het automatisch verlopen van de huur.

Een speler ziet een woning:

๐Ÿ  Huis #001

Huurprijs:
โ‚ฌ250 / 30 dagen

Status:
๐ŸŸข Beschikbaar

[ HUREN ] 

Na het huren:

๐Ÿ  Huis #001

Huurder:
Speler

Verloopt:
09-10-2026

Status:
๐Ÿ”ด Verhuurd 

Bij het verlopen van de huur kan de woning automatisch worden vrijgegeven en, indien ingesteld, worden teruggezet naar de oorspronkelijke staat.


De eerste versie ondersteunt:

Type Beschrijving
HOUSE Woningen en huizen
SHOP Winkels en bedrijfsruimtes
HOTEL Hotelkamers of suites
OFFICE Kantoorruimtes
PLOT Verhuurbare bouwkavels
WORKSHOP Werkplaatsen
CUSTOM Overige verhuurbare ruimtes

Nieuwe types kunnen later worden toegevoegd zonder het complete systeem opnieuw te ontwerpen.


Een woning kan tijdelijk aan een speler worden verhuurd.

Voorbeeld:

Huis #001
โ‚ฌ250 / 30 dagen
๐ŸŸข Beschikbaar

Na verhuur wordt de speler eigenaar van de gekoppelde WorldGuard-region.

De huurder kan binnen de region bouwen, breken en de woning gebruiken volgens de ingestelde WorldGuard-flags.

Bij het verlopen van de huur:

  • De huurder verliest toegang.
  • De WorldGuard-owner wordt verwijderd.
  • Eventuele medewerkers worden verwijderd.
  • De woning kan automatisch worden gereset.
  • De woning wordt opnieuw beschikbaar.

Een winkel werkt vergelijkbaar met een woning, maar ondersteunt daarnaast medewerkers.

Voorbeeld:

๐Ÿช TulpenShop

Huur:
โ‚ฌ500 / 30 dagen

Eigenaar:
Speler

Medewerkers:
2 

De eigenaar kan medewerkers toevoegen en verwijderen.

/tc shop employee add winkel-001 Speler
/tc shop employee remove winkel-001 Speler

Medewerkers krijgen toegang tot de WorldGuard-region, maar zijn niet de huurder/eigenaar van het huurcontract.


Kamers kunnen bijvoorbeeld worden gebruikt voor een hotel.

Een kamer kan dezelfde verhuurfunctionaliteit gebruiken als een woning.

Daarnaast kan per kamer een LuckPerms-permission worden ingesteld.

Voorbeeld:

Kamer 201
โ‚ฌ250 / 7 dagen

โญ VIP+ vereist 

Een speler zonder de benodigde permission kan de kamer niet huren.


Per verhuurobject kan een optionele LuckPerms-permission worden ingesteld.

Voorbeeld:

tulpencraft.rent.vip

Heeft een rental geen permission requirement, dan kan iedere speler de rental huren.

Voorbeeld:

Rental Permission
Huis #001 Geen
Huis #002
tulpencraft.rent.vip
Kamer 201
tulpencraft.rent.vip
Suite 301
tulpencraft.rent.premium
Staffruimte
tulpencraft.rent.staff

De plugin controleert de permission server-side voordat een huurcontract kan worden afgesloten.

De daadwerkelijke rangnaam wordt niet in TulpenCraft Rentals opgeslagen.

De plugin gebruikt permissions, waardoor de rankstructuur volledig door LuckPerms wordt beheerd.


Jar-bestand:

TulpenCraftRentals.jar

Locatie:

/srv/minecraft/survival/plugins/TulpenCraftRentals.jar

De plugin vereist toegang tot de volgende systemen:

  • Paper API
  • WorldGuard
  • WorldEdit
  • Vault
  • MariaDB
  • LuckPerms
  • Discord webhook (optioneel)

Configuratiebestand:

/srv/minecraft/survival/plugins/TulpenCraftRentals/config.yml
Instelling Waarde Betekenis
Database MariaDB Centrale opslag van huurcontracten
Economy Vault Betalingen voor huur
Protection WorldGuard Bescherming van verhuurde regions
Reset WorldEdit Optioneel herstellen van woningen/winkels
Permissions LuckPerms VIP/Premium/staff beperkingen
Discord Webhook Notificaties naar Discord
Expiration check 60 seconden Controle op verlopen huurcontracten
plugin:
  name: "TulpenCraft Rentals"

database:
type: mariadb
host: "127.0.0.1"
port: 3306
database: "tulpencraft_rentals"
username: "tulpencraft"
password: "${TULPENCRAFT_RENTALS_DB_PASSWORD}"

economy:
enabled: true
provider: vault

rentals:
default-duration-days: 30
minimum-duration-days: 1
maximum-duration-days: 365

limits:
houses-per-player: 1
shops-per-player: 1

expiration:
check-interval-seconds: 60

reset:
enabled: true
delay-seconds: 5

notifications:
expiry-warning-days:
- 7
- 3
- 1

gui:
enabled: true

signs:
enabled: true

discord:
enabled: true

webhooks:
rentals:
url: "${TC_DISCORD_RENTALS_WEBHOOK}"
 
```
transactions:
  url: "${TC_DISCORD_TRANSACTIONS_WEBHOOK}"

alerts:
  url: "${TC_DISCORD_ALERTS_WEBHOOK}"
```

Permission Rank Beschrijving
tulpenrental.use
Speler Gebruik van het verhuursysteem
tulpenrental.rent
Speler Rentals huren
tulpenrental.renew
Speler Eigen huur verlengen
tulpenrental.shop
Huurder Winkel-functionaliteit
tulpenrental.shop.employee
Huurder Winkelmedewerkers beheren
tulpenrental.admin
Admin Volledig beheer
tulpenrental.admin.create
Admin Rentals aanmaken
tulpenrental.admin.delete
Admin Rentals verwijderen
tulpenrental.admin.edit
Admin Rentals wijzigen
tulpenrental.admin.reset
Admin Rentals resetten
tulpenrental.admin.expire
Admin Huurcontracten handmatig laten verlopen

Deze permissions worden gebruikt om bepaalde rentals uitsluitend voor bepaalde spelers beschikbaar te maken.

Permission Betekenis
tulpencraft.rent.vip
VIP of hoger
tulpencraft.rent.premium
Premium of hoger
tulpencraft.rent.staff
Staff
tulpencraft.rent.special
Speciale toegang

De exacte koppeling tussen ranks en permissions wordt door LuckPerms geregeld.

Rank Rechten
Speler Algemene rentals huren indien toegestaan
VIP Algemene rentals + VIP-rentals
VIP+ Algemene rentals + VIP/VIP+-rentals
Helper Afhankelijk van staff-permissions
Bouwer Afhankelijk van staff-permissions
Moderator Beheer indien toegekend
Developer Technisch beheer
Admin Volledig rentalbeheer
Owner Volledig beheer

De plugin koppelt geen functionaliteit rechtstreeks aan de naam van een rank. LuckPerms permissions bepalen de toegang.


Commando Permission Beschrijving
/tc rentals
tulpenrental.use
Open verhuurmenu
/tc rental info <id>
tulpenrental.use
Bekijk rentalinformatie
/tc rental rent <id>
tulpenrental.rent
Rental huren
/tc rental renew <id>
tulpenrental.renew
Huur verlengen
/tc rental cancel <id>
Huurder Eigen huur beรซindigen
Commando Permission Beschrijving
/tc shop employees <id>
tulpenrental.shop
Medewerkers bekijken
/tc shop employee add <id> <player>
tulpenrental.shop.employee
Medewerker toevoegen
/tc shop employee remove <id> <player>
tulpenrental.shop.employee
Medewerker verwijderen
Commando Permission Beschrijving
/tc rental create <region> <type>
tulpenrental.admin.create
Rental aanmaken
/tc rental list
tulpenrental.admin
Rentals bekijken
/tc rental info <id>
tulpenrental.admin
Rentalgegevens bekijken
/tc rental edit <id>
tulpenrental.admin.edit
Rental wijzigen
/tc rental price <id> <bedrag>
tulpenrental.admin.edit
Huurprijs wijzigen
/tc rental duration <id> <dagen>
tulpenrental.admin.edit
Huurperiode wijzigen
/tc rental enable <id>
tulpenrental.admin.edit
Rental beschikbaar maken
/tc rental disable <id>
tulpenrental.admin.edit
Rental uitschakelen
/tc rental reset <id>
tulpenrental.admin.reset
Rental handmatig resetten
/tc rental expire <id>
tulpenrental.admin.expire
Huur handmatig beรซindigen
/tc rental release <id>
tulpenrental.admin.edit
Rental vrijgeven

TulpenCraft Rentals gebruikt MariaDB als centrale database.

Database:

tulpencraft_rentals

Belangrijkste tabellen:

Tabel Functie
rentals
Verhuurbare objecten en huurcontracten
rental_members
Medewerkers van winkels/rentals
rental_transactions
Huur- en verlengingsbetalingen
rental_notifications
Verzonden verloopwaarschuwingen

De database bevat UUID's in plaats van spelersnamen waar mogelijk.

Dit voorkomt problemen wanneer een speler zijn Minecraft-naam verandert.


Wanneer een speler een rental huurt:

Speler
  โ†“
Rental selecteren
  โ†“
Status controleren
  โ†“
LuckPerms permission controleren
  โ†“
Aantal actieve rentals controleren
  โ†“
Prijs controleren
  โ†“
Vault / Economy
  โ†“
Betaling
  โ†“
WorldGuard ownership
  โ†“
MariaDB
  โ†“
Huur actief

De plugin moet bij fouten voorkomen dat een speler betaalt zonder daadwerkelijk toegang tot de rental te krijgen.


De plugin controleert periodiek op verlopen huurcontracten.

Voorbeeld:

Huur gestart:
09-09-2026

Duur:
30 dagen

Verloopt:
09-10-2026 

Voor het verlopen kunnen waarschuwingen worden verstuurd:

  • 7 dagen vooraf
  • 3 dagen vooraf
  • 1 dag vooraf

Bij het verlopen:

  1. Huurcontract wordt EXPIRED.
  2. WorldGuard-toegang wordt verwijderd.
  3. Winkelmedewerkers worden verwijderd.
  4. Indien geconfigureerd wordt de region gereset.
  5. Rental wordt opnieuw AVAILABLE.
  6. Discord-notificatie wordt verstuurd.

Woningen en winkels kunnen optioneel automatisch worden hersteld met een WorldEdit-schematic.

Voorbeeld:

schematics/
โ”œโ”€โ”€ houses/
โ”‚   โ”œโ”€โ”€ huis-001.schem
โ”‚   โ””โ”€โ”€ huis-002.schem
โ”‚
โ””โ”€โ”€ shops/
    โ”œโ”€โ”€ shop-001.schem
    โ””โ”€โ”€ shop-002.schem

Een rental kan bijvoorbeeld bevatten:

reset:
  enabled: true
  schematic: "houses/huis-001.schem"

Bij een reset wordt de rental tijdelijk op:

RESETTING

gezet.

Wanneer de reset mislukt blijft de rental in deze status staan en wordt deze niet automatisch opnieuw verhuurbaar gemaakt.

Dit voorkomt dat spelers een half geresette of beschadigde ruimte huren.


TulpenCraft Rentals ondersteunt Discord-webhooks.

Discord wordt gebruikt voor beheer-, transactie- en foutmeldingen.

Voorbeeld:

๐Ÿ  RENTAL VERHUURD

Object: Huis #001
Type: Woning
Huurder: Speler
Prijs: โ‚ฌ250
Duur: 30 dagen
Verloopt: 09-10-2026

Rental ID: huis-001 
โš ๏ธ HUUR VERLOOPT BINNENKORT

Object: Huis #001
Huurder: Speler
Verloopt over: 3 dagen

Huur: โ‚ฌ250 / 30 dagen 
๐Ÿ”ด RENTAL VERLOPEN

Object: Huis #001
Huurder: Speler

Status: EXPIRED
Reset: gestart 
โœ… RENTAL RESET VOLTOOID

Object: Huis #001
Schematic: houses/huis-001.schem
Status: AVAILABLE 
๐Ÿšจ RENTAL RESET MISLUKT

Object: Huis #001
Schematic: houses/huis-001.schem

Status: RESETTING

โš ๏ธ Rental is NIET opnieuw beschikbaar gemaakt. 

Discord-notificaties worden via webhooks verstuurd. Webhook-URL's worden niet in Git opgeslagen en kunnen via environment variables worden aangeleverd.


TulpenCraft Rentals gebruikt WorldGuard voor de fysieke bescherming van rentals.

Een administrator maakt eerst een region:

/rg define tc_huis_001

Daarna wordt deze gekoppeld:

/tc rental create tc_huis_001 house

De plugin controleert of de region bestaat en voorkomt dat dezelfde WorldGuard-region meerdere keren aan rentals wordt gekoppeld.

WorldGuard blijft verantwoordelijk voor:

  • Bouwrechten
  • Breekrechten
  • Toegang
  • Region flags
  • Owners
  • Members

TulpenCraft Rentals beheert de eigenaar en medewerkers gedurende de huurperiode.


Betalingen verlopen via Vault.

De plugin heeft geen eigen economy.

Hierdoor blijft TulpenCraft Rentals onafhankelijk van de gebruikte economy-plugin.

Voorbeeld:

Saldo speler:
โ‚ฌ1.200

Huur:
โ‚ฌ250

Nieuw saldo:
โ‚ฌ950 

Alle transacties worden geregistreerd in MariaDB.


  • Paper
  • WorldGuard
  • WorldEdit
  • Vault
  • MariaDB
  • LuckPerms
  • Discord Webhook (optioneel)

Proxy-plugin: Nee

TulpenCraft Rentals draait op de backend-server waarop de WorldGuard-regions en verhuurbare gebieden aanwezig zijn.

Onderdeel Waarde
Proxy Velocity
Backend Survival
Database MariaDB
Publieke host Niet van toepassing

Velocity hoeft geen TulpenCraft Rentals-plugin te draaien.

Wanneer TulpenCraft later meerdere backend-servers met rentals gebruikt, kan dezelfde MariaDB-database worden gebruikt met een unieke server-identificatie per rental.


TulpenCraft Rentals heeft toegang tot:

  • WorldGuard regions
  • WorldEdit
  • Economy
  • LuckPerms permissions
  • MariaDB
  • Discord webhook

Belangrijke beveiligingsmaatregelen:

  • Databasewachtwoord niet in Git.
  • Discord webhook URL niet in Git.
  • Gebruik van UUID's in plaats van namen.
  • Geldbedragen worden als exacte decimalen verwerkt.
  • Databasewerk gebeurt niet op de Minecraft main thread.
  • Spelers kunnen permissiechecks niet omzeilen via commands.
  • Verlopen rentals worden niet opnieuw beschikbaar gemaakt voordat eventuele reset succesvol is afgerond.
  • Fouten tijdens betalingen of WorldGuard-wijzigingen moeten veilig worden afgehandeld.
  • Adminfuncties worden via permissions beschermd.

Status Betekenis
AVAILABLE Beschikbaar voor verhuur
RENTED Actief verhuurd
EXPIRED Huurperiode verlopen
RESETTING Bezig met herstellen
DISABLED Tijdelijk niet verhuurbaar

Normale lifecycle:

AVAILABLE
    โ†“
RENTED
    โ†“
EXPIRED
    โ†“
RESETTING
    โ†“
AVAILABLE

Naast commands krijgt de plugin een GUI.

๐ŸŒท TULPENCRAFT VERHUUR

๐Ÿ  Woningen

๐Ÿช Winkels

๐Ÿ›๏ธ Kamers

๐Ÿ“‹ Mijn huur 
๐Ÿ  Huis #001
โ‚ฌ250 / 30 dagen
๐ŸŸข Beschikbaar

๐Ÿ  Huis #002
โ‚ฌ350 / 30 dagen
โญ VIP

๐Ÿ  Huis #003
โ‚ฌ500 / 30 dagen
๐Ÿ”ด Verhuurd 

Wanneer een speler niet over de vereiste LuckPerms-permission beschikt:

๐Ÿจ Kamer 201

โ‚ฌ250 / 7 dagen

โญ VIP vereist

๐Ÿ”’ Je hebt geen toegang. 

De daadwerkelijke huuractie blijft ook server-side geblokkeerd.


Rentals kunnen optioneel via fysieke borden worden weergegeven.

Voorbeeld:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ  HUIS #001   โ”‚
โ”‚                 โ”‚
โ”‚  โ‚ฌ250 / 30d     โ”‚
โ”‚                 โ”‚
โ”‚ ๐ŸŸข BESCHIKBAAR  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Klikken op het bord opent de rentalinformatie of huur-GUI.

Hetzelfde systeem kan worden gebruikt voor winkels en hotelkamers.


De architectuur houdt rekening met toekomstige functionaliteit.

Mogelijke uitbreidingen:

  • Webinterface
  • TulpenCraft website-integratie
  • REST API
  • Rental-statistieken
  • Borgsom
  • Kortingen
  • VIP-kortingen
  • Verschillende huurperiodes
  • Automatische prijsmodellen
  • Meerdere medewerkers
  • Hotelmodus
  • Veilingen
  • Permanente aankoop van objecten
  • Meerdere Minecraft-servers
  • Admin dashboard
  • Discord-adminacties

De website kan later bijvoorbeeld beschikbare woningen en winkels rechtstreeks uit MariaDB/API-data tonen.


  • MariaDB moet beschikbaar zijn voordat de plugin kan functioneren.
  • WorldGuard-regions moeten correct worden aangemaakt.
  • WorldEdit-schematics moeten zorgvuldig worden getest voordat automatische resets worden ingeschakeld.
  • Discord-webhooks mogen niet publiek worden gedeeld.
  • LuckPerms permissions moeten correct worden gekoppeld aan de gewenste ranks.
  • Huurcontracten moeten altijd UUID-gebaseerd zijn.
  • Een reset die mislukt mag nooit automatisch leiden tot status AVAILABLE.
  • Economy-transacties moeten veilig worden afgehandeld.
  • Databasebewerkingen mogen de Minecraft main thread niet blokkeren.
  • De plugin moet duidelijk loggen wanneer een huurcontract wordt aangemaakt, verlengd, beรซindigd of gereset.

Rental kan niet worden gehuurd.

/tc rental info huis-001

Controleer vervolgens:

  • Status
  • Prijs
  • Huurperiode
  • LuckPerms permission
  • Economy
  • WorldGuard-region

Controleer of de rental AVAILABLE is en of de speler over de vereiste permission beschikt.


Speler krijgt geen toegang tot de woning.

/rg info tc_huis_001

Controleer de WorldGuard owner/member-configuratie.

Controleer of TulpenCraft Rentals de huurder correct als WorldGuard-owner heeft geregistreerd.


Rental blijft op RESETTING staan.

/tc rental info huis-001

Controleer daarnaast de serverconsole.

Controleer of de gekoppelde schematic bestaat en geldig is.

De rental wordt bewust niet automatisch beschikbaar gemaakt totdat het resetprobleem is opgelost.


Discord-notificaties komen niet aan.

Controleer de Discord webhook-configuratie en serverconsole.

grep -i "discord" /srv/minecraft/survival/logs/latest.log

Controleer:

  • Webhook URL
  • Environment variable
  • Discord-kanaal
  • Internetverbinding
  • Pluginconfiguratie

Laatste wijziging: 09-09-2026

Wijziging: Eerste technisch/functioneel ontwerp opgesteld.

Status: โš ๏ธ Ontwikkeling gepland


Fase Onderdeel Status
1 Plugin foundation ๐ŸŸก Gepland
2 MariaDB ๐ŸŸก Gepland
3 Rental management ๐ŸŸก Gepland
4 WorldGuard-integratie ๐ŸŸก Gepland
5 Vault/economy ๐ŸŸก Gepland
6 LuckPerms ๐ŸŸก Gepland
7 Huren/verlenging ๐ŸŸก Gepland
8 Expiratie ๐ŸŸก Gepland
9 WorldEdit reset ๐ŸŸก Gepland
10 GUI ๐ŸŸก Gepland
11 Discord ๐ŸŸก Gepland
12 Website/API โšช Toekomstig

  • plugins/tulpencraftrental.txt
  • Laatst gewijzigd: 2026/09/09 17:43
  • door rroethof