| 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:
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:
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:
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:
Bij het verlopen:
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:
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.
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:
Belangrijke beveiligingsmaatregelen:
| 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:
De website kan later bijvoorbeeld beschikbare woningen en winkels rechtstreeks uit MariaDB/API-data tonen.
Rental kan niet worden gehuurd.
/tc rental info huis-001
Controleer vervolgens:
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:
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 |