Skip to content

Advanced sector system for Minecraft 1.8 - 1.21 🌍 — seamless world splitting & player data sync 🔄

Notifications You must be signed in to change notification settings

fajzu1/OpenSectors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

Warning

This branch is currently under active development

⚠️ Features may be incomplete or unstable.
❌ This branch is unstable and should not be used on the main/production server.
✅ Use it only for testing or development purposes.


✨ Features

  • 🚪 Smooth teleportation between sectors on border crossing
  • 🔄 Real-time player data synchronization
  • 🧭 Shared and synced sector information
  • 💬 Global player chat synchronized across all sectors


⏯ Video



🧰 Requirements

  • 🌐 1x Velocity proxy server
  • 🧱 Minimum 2x Spigot/Paper servers
  • ⚡ 1x Redis instance (data distribution & sync)

⚙️ Configuration

Setting up sectors is simple and straightforward. Define the area for each sector and configure your Redis instance in the config files.

🗺️ Sectors Configuration

{
  "sectors": {
    "s1": {
      "name": "s1",
      "sectorType": "NORMAL",
      "minX": -100,
      "maxX": 1000,
      "minZ": 100,
      "maxZ": 1000
    },
    "spawn_1": {
      "name": "spawn_1",
      "sectorType": "SPAWN",
      "minX": -100,
      "maxX": 100,
      "minZ": -100,
      "maxZ": 100
    }
  }
}

🧠 Redis Configuration

{
  "redisHost": "localhost",
  "redisPassword": "root",
  "redisPort": 6379
}

📍 Spigot Configuration

{
  "currentSector": "s1"
}

💬 Messages Configuration

{
  "cannotPlaceBlockNearSectorMessage": "&cNie możesz stawiać bloków przy granicy sektora!",
  "cannotBreakBlockNearSectorMessage": "&cNie możesz niszczyć bloków przy granicy sektora!",
  "actionbarBorderMessage": "&7Jesteś blisko sektora &2{DISTANCE}&7m",
  "sectorIsOfflineMessage": "&cSektor z którym chcesz się połączyć jest aktualnie wyłączony!",
  "noSectorsAvailableMessage": "&cBrak dostepnych sektorów",
  "playerDataNotFoundMessage": "&cWystąpił problem podczas ładowania danych",
  "playerDataLoadedMessage": "&aPomyślnie połączono i załadowano dane w ciągu &2{TIME}ms",
  "playerAlreadyConnectedMessage": "&cJesteś aktualnie połączony z tym kanałem",
  "playerSectorTransferCooldownMessage": "&cPoczekaj chwile zanim znowu przejdziesz przez sektor",
  "spawnSectorNotFoundMessage": "&cNie odnaleziono dostepnego sektora spawna",
  "scoreboardTitle": "&a&lOpenSectors",
  "scoreboardLines": [
    "",
    "&7Polaczono z &a{SECTOR}",
    "&7Uzyj: &a/ch &7aby ",
    "&7zmienic kanal",
    "",
    "&7Online: &a{ONLINE}",
    "&7TPS: &a{TPS}",
    ""
  ],
  "connectedInfoTitle": "&a&lOpenSectors",
  "connectedInfoSubTitle": "&7Pomyslnie &a&npolaczono&r &7z sektorem &a&n{SECTOR}"
}

🐛 Found a Bug?

Spotted an issue? Report it via Discord: fizuxd 💬


📌 TODO

  • 📡 Add support for NATS
  • 📝 Change configuration system from JSON to YAML
  • 🐛 Fix 1.21.1+ NMS support

💖 Thanks for Your Support!

If you enjoy using OpenSectors, leave a ⭐ on the GitHub repo and share it with your friends!