TulpenCraft Rentals
๐ Status
| 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 | โ |
๐ฏ Doel
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.
Voorbeeld
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.
๐งฉ Ondersteunde verhuurtypes
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.
๐ Woningen
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.
๐ช Winkels
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
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.
โญ LuckPerms / rangvereisten
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.
๐ฆ Installatie
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)
โ๏ธ Configuratie
Configuratiebestand:
/srv/minecraft/survival/plugins/TulpenCraftRentals/config.yml
Belangrijke instellingen
| 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 |
TulpenCraft-configuratie
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}" ```
๐ Rechten
| 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 |
Rental access permissions
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.
Rankverdeling
| 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's
Speler
| 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 |
Winkel
| 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 |
Beheer
| 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 |
๐๏ธ Database
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.
๐ Huurproces
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.
โฐ Huurverloop
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:
- Huurcontract wordt EXPIRED.
- WorldGuard-toegang wordt verwijderd.
- Winkelmedewerkers worden verwijderd.
- Indien geconfigureerd wordt de region gereset.
- Rental wordt opnieuw AVAILABLE.
- Discord-notificatie wordt verstuurd.
โป๏ธ Reset-systeem
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.
๐ Discord notificaties
TulpenCraft Rentals ondersteunt Discord-webhooks.
Discord wordt gebruikt voor beheer-, transactie- en foutmeldingen.
Rental verhuurd
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
โ ๏ธ HUUR VERLOOPT BINNENKORT Object: Huis #001 Huurder: Speler Verloopt over: 3 dagen Huur: โฌ250 / 30 dagen
Huur verlopen
๐ด RENTAL VERLOPEN Object: Huis #001 Huurder: Speler Status: EXPIRED Reset: gestart
Reset succesvol
โ RENTAL RESET VOLTOOID Object: Huis #001 Schematic: houses/huis-001.schem Status: AVAILABLE
Reset mislukt
๐จ 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.
๐งฑ WorldGuard
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.
๐ฐ Economy
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.
๐ Afhankelijkheden
- Paper
- WorldGuard
- WorldEdit
- Vault
- MariaDB
- LuckPerms
- Discord Webhook (optioneel)
๐ Netwerk / Proxy
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.
๐ก๏ธ Beveiliging
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.
๐ Rental statussen
| 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
๐ฅ๏ธ Gebruikersinterface
Naast commands krijgt de plugin een GUI.
Hoofdmenu
๐ท TULPENCRAFT VERHUUR ๐ Woningen ๐ช Winkels ๐๏ธ Kamers ๐ Mijn huur
Rental overzicht
๐ Huis #001 โฌ250 / 30 dagen ๐ข Beschikbaar ๐ Huis #002 โฌ350 / 30 dagen โญ VIP ๐ Huis #003 โฌ500 / 30 dagen ๐ด Verhuurd
Niet toegankelijke rental
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.
๐ชง Signs / fysieke verhuur
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.
๐ Toekomstige uitbreidingen
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.
โ ๏ธ Aandachtspunten
- 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.
๐งช Troubleshooting
Probleem
Rental kan niet worden gehuurd.
Controle
/tc rental info huis-001
Controleer vervolgens:
- Status
- Prijs
- Huurperiode
- LuckPerms permission
- Economy
- WorldGuard-region
Oplossing
Controleer of de rental AVAILABLE is en of de speler over de vereiste permission beschikt.
Probleem
Speler krijgt geen toegang tot de woning.
Controle
/rg info tc_huis_001
Controleer de WorldGuard owner/member-configuratie.
Oplossing
Controleer of TulpenCraft Rentals de huurder correct als WorldGuard-owner heeft geregistreerd.
Probleem
Rental blijft op RESETTING staan.
Controle
/tc rental info huis-001
Controleer daarnaast de serverconsole.
Oplossing
Controleer of de gekoppelde schematic bestaat en geldig is.
De rental wordt bewust niet automatisch beschikbaar gemaakt totdat het resetprobleem is opgelost.
Probleem
Discord-notificaties komen niet aan.
Controle
Controleer de Discord webhook-configuratie en serverconsole.
grep -i "discord" /srv/minecraft/survival/logs/latest.log
Oplossing
Controleer:
- Webhook URL
- Environment variable
- Discord-kanaal
- Internetverbinding
- Pluginconfiguratie
๐ Onderhoud
Laatste wijziging: 09-09-2026
Wijziging: Eerste technisch/functioneel ontwerp opgesteld.
Status: โ ๏ธ Ontwikkeling gepland
๐บ๏ธ Ontwikkelingsfasen
| 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 |