SkyClaims - A SkyBlock Plugin designed for GriefPrevention

SkyClaims - This project is now listed on Ore. Please use the Ore listing to view the latest information and download builds.


SkyClaims

SkyClaims is a plugin for SkyBlock servers that run GriefPrevention for protection.
Instead of reinventing the wheel and adding custom protection for islands, SkyClaims will implement claims from one of Sponge’s most powerful plugins, GriefPrevention!
With this design, nearly every GriefPrevention feature will be available to players for managing their islands.

This plugin is in Beta. Live support is available for the latest builds through Discord!

Features

  • Complete control of command usage with granular permissions (ie specific biomes for setbiome)
  • Automatic creation of islands and their encompassing claim
  • Support multiple island designs via Sponge schematics
  • Expanding islands using claim blocks or other resource (econ)
  • Isolation of islands to their own Minecraft region file
  • Allow spawn/tp on your island at a configurable location
  • Use GriefPrevention trust commands to work in teams
  • Change the biome of a block, chunk or entire island
  • Limit entity spawning per island
  • Automatic removal of inactive islands
  • (Planned) Configurable island layouts (linear & spiral planned)
  • (Planned) Add an island messaging channel so you can chat within your island

Plugin Integration

Additional Information

Plugin releases are available on Ore.

Detailed feature information is available on our Wiki.

Bug reports and feature requests can be made on GitHub.

Source Code | Discord | Patreon | PayPal

10 Likes

Does this work if you don’t want to run GriefPrevention?

Considering the description specifically says its an addon… no.

The first release will not. I have plans to make both GriefPrevention and WorlEdit optional at the cost of some functionality but it’s not a priority at this time.

What’s your function to paste schematics? I’m using Sponge’s schematic API and my islands aren’t pasting in the location I tell it to.

The schematic code isn’t tested/complete. Was going to focus on that tonight. Are you saying sponge has its own schematic api? Because the way I saw you had to set block was not cool lol.

Check out this CookBook on the API

Thank you for sharing this, it will help me tremendously! I’d much rather not have WorldEdit as a dependency.

1 Like

Using grief prevention (or fox guard for a better manner) isn’t a bad idea. If you can save island positions well so the positions don’t get all jumbled up, they’d be a great way to protect islands!
This is something the plugin USkyBlock does on spigot API.

Mine is like ASkyBlock where it has its own protection system. I’m glad both of us will be able to put out different options for SkyBlock :slight_smile:

GP is very good. You can simply create/update claims from external plugin.

Example from my SkyResources Bridge (WIP) plugin:

	private PluginManager pluginManager = Sponge.getPluginManager();
	private PluginContainer gpPlugin = pluginManager.getPlugin("griefprevention").get();
	private GriefPrevention pluginInstance = (GriefPrevention) gpPlugin.getInstance().get();

......
	@SubscribeEvent
	public void onIslandCreate (IslandCreateEvent event) {
		
		Player player = Sponge.getServer().getPlayer(event.getPlayerUUID()).get();
		logger.info("Player " + player.getName() + " created island at " + (event.getIslandPosition().getX())*IslandDistance + " " + (event.getIslandPosition().getY())*IslandDistance );
		
	    World world = Sponge.getServer().getWorld("world").orElse(null);
	        		
        CreateClaimResult result = pluginInstance.dataStore.createClaim(
                world,
                ((event.getIslandPosition().getX())*IslandDistance-(IslandDistance/2)+1),
                ((event.getIslandPosition().getX())*IslandDistance+(IslandDistance/2)-1),
                0,
                255,
                ((event.getIslandPosition().getY())*IslandDistance-(IslandDistance/2)+1),
                ((event.getIslandPosition().getY())*IslandDistance+(IslandDistance/2)-1),
                UUID.randomUUID(), null, Claim.Type.BASIC, false, player);  
		
	}
	
	@SubscribeEvent 
	public void onIslandInvite(IslandInviteEvent event) {
		Player player = Sponge.getServer().getPlayer(event.getPlayerUUID()).get();
		logger.info("Player " + player.getName() + " has invited to island at " + (event.getIslandPosition().getX())*IslandDistance + " " + (event.getIslandPosition().getY())*IslandDistance );
		
	    World world = Sponge.getServer().getWorld("world").orElse(null);
	    
	    Location island = new Location(world, (event.getIslandPosition().getX())*IslandDistance, 128, (event.getIslandPosition().getY())*IslandDistance);
		
		Claim claim = pluginInstance.dataStore.getClaimAt(island, false, null);
	    claim.getClaimData().getAccessors().add(player.getUniqueId());
	    claim.getClaimData().getBuilders().add(player.getUniqueId());
	    claim.getClaimData().getContainers().add(player.getUniqueId());
	    claim.getClaimData().setRequiresSave(true);

		
	}
1 Like

How on earth do I beat SkyFactory 3’s release when I’m waiting for the next GriefPrevention build :’(
I don’t think it’s possible at this rate…

Feel free to join our new Discord Server for support and alpha builds!

The beta versions of SkyClaims are coming along quite nicely. I will be adding the project to Ore soon! If you’re still looking for a SkyBlock plugin, look no futher :slight_smile:.

1 Like

That made me chuckle

A new SkyClaims download is now available on Ore!

WARNING: The SQLite DB file location has been moved! Ensure that you verify your database is successfully moved to the new location!

REQUIRES: SF 2096+ & GP 251+ (latest versions are highly recommended)

  • Moved SQLite DB to SPONGE_CONFIG_DIR/skyclaims/data and deprecated SQLite configs
  • Added Storage location config to be used for all file based SkyClaims data
  • Fixed island commands returning an island outside the configured dimension
  • Added config options to enable Schematic, Biome Type and Target permission checks (disabled by default)
  • Schematic, Biome Type and Target arguments now only tab complete values that the player has permission to use
  • Claim size is automatically expanded during startup if it is less than the owner’s initial-size
  • Default initial-size option increased from 32 to 48
  • A default schematic (SF3) is now automatically included
  • SQLite now creates a backup automatically on migration

A new version has been released for SkyClaims


REQUIRES: SF 2096+ & GP 255+ (latest versions are highly recommended)

  • Fixed island width calculation being off by 2 /is info
  • Fixed isa transfer not working when supplied with an owner
  • Added is expand [blocks] to allow player to expand their islands using claim blocks (subtracted from bonus claim blocks - will regen)
  • Added skyclaims.max-size option to limit how large players can expand their islands
  • skyclaims.initial-size now supports being set to 256
  • Added a confirmation message to the admin delete shortcut in /is info
  • Removed hard island limit from isa transfer (multiple islands per player is still unsupported officially)

A new version has been released for SkyClaims, it is available for download here.


Manual SQLite file migration required if upgrading from Beta 13 or earlier!

REQUIRED: SF 2096+ & GP 255+ OPTIONAL: Nucleus 0.24.1+

  • Removed deprecated SQLite config and auto file migration
  • Fixed /isa transfer not working when supplied with an owner
  • Fixed /is expand not being able to expand an island to max-size
  • Fixed /is setspawn's message formatting to not display decimal numbers
  • Fixed /is setspawn not being restricted to an island’s claimed area
  • Fixed system-dependent file separators causing NPE when moving config to different OS
  • Added /is lock [island|all] & /is unlock [island|all] arguments - requires skyclaims.admin.lock
  • Added island lock indicator to is list & is info
  • Added expand (no cost) to admin shortcuts in /is info requires skyclaims.admin.expand
  • Added custom island command argument that accepts a player name or island id
  • Changed /is info to accept an island argument
  • Changed default island lock to true
  • /is spawn can now be used to visit unlocked islands
  • /is list no longer hides locked islands - teleporting now checks lock status & permissions
  • /is list is now sorted alphabetically
  • /is list & /is info now displays “[L]” or “[U]” based on the island’s lock setting (click to toggle)
  • Added Nucleus integration:
        • /is home & /is sethome now works as a player configurable home when installed

/is sethome not working. error in chat. no error in console.
An error was encountered while attempting to set your home.

I need economy support for island create.

You can only make one island per player atm so this really doesn’t make sense to me as you can’t really play without an island and therefore likely cannot gain currency in order to “buy” an island. You’re going to need to explain your intentions further.

Even the, Economy support is a low priority right now as a built-in team system is the biggest priority for the next SkyClaims version.