Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed Auto flags and added polygonal regions in claim command. Also removed sources from jar #23

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ defaultTasks 'build'


group 'org.hurricanegames'
version '3.0'
version '3.0.2'


import java.nio.file.Path
Expand Down Expand Up @@ -36,6 +36,13 @@ sourceSets {
}
}

processResources{
from (sourceSets.main.resources.srcDirs) {
expand 'version': project.version
include 'plugin.yml'
}
}

repositories {
mavenCentral()
jcenter()
Expand Down Expand Up @@ -68,12 +75,14 @@ compileJava {


jar {
from sourceSets.main.java.srcDirs
from 'LICENSE'

archiveName = jar.archiveName
}

clean{
projectDirectoryPath.resolve("target").deleteDir();
}

task copyFinalJarToTarget(type: DefaultTask) {doLast{
Path targetJarDirectory = projectDirectoryPath.resolve("target")
Expand Down
2 changes: 1 addition & 1 deletion resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: WGExtender
main: wgextender.WGExtender
api-version: 1.13
version: 3.0
version: ${version}
author: _Shevchik_
depend: [WorldGuard, WorldEdit, Vault]
commands:
Expand Down
22 changes: 16 additions & 6 deletions src/wgextender/features/claimcommand/WEClaimCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package wgextender.features.claimcommand;

import com.sk89q.worldedit.regions.Polygonal2DRegion;
import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -58,9 +60,10 @@ protected static void claim(String id, CommandSender sender) throws CommandExcep
throw new CommandException("Регион с таким именем уже существует, выберите другое.");
}

ProtectedRegion region = createProtectedRegionFromSelection(player, id);
boolean mayClaimRegionsUnbounded = permModel.mayClaimRegionsUnbounded();
ProtectedRegion region = createProtectedRegionFromSelection(player, id, mayClaimRegionsUnbounded);

if (!permModel.mayClaimRegionsUnbounded()) {
if (!mayClaimRegionsUnbounded) {
int maxRegionCount = wcfg.getMaxRegionCount(localPlayer);
if ((maxRegionCount >= 0) && (manager.getRegionCountOfPlayer(localPlayer) >= maxRegionCount)) {
throw new CommandException("У вас слишком много регионов, удалите один из них перед тем как заприватить новый.");
Expand Down Expand Up @@ -92,16 +95,23 @@ protected static void claim(String id, CommandSender sender) throws CommandExcep
}
}

private static ProtectedRegion createProtectedRegionFromSelection(Player player, String id) throws CommandException {
private static ProtectedRegion createProtectedRegionFromSelection(Player player, String id, boolean mayClaimRegionsUnbounded) throws CommandException {
try {
Region selection = WEUtils.getSelection(player);
if (selection instanceof CuboidRegion) {
if (selection instanceof Polygonal2DRegion && mayClaimRegionsUnbounded) {
Polygonal2DRegion polySel = (Polygonal2DRegion) selection;
int minY = polySel.getMinimumPoint().getBlockY();
int maxY = polySel.getMaximumPoint().getBlockY();
return new ProtectedPolygonalRegion(id, polySel.getPoints(), minY, maxY);
} else if (selection instanceof CuboidRegion) {
return new ProtectedCuboidRegion(id, selection.getMinimumPoint(), selection.getMaximumPoint());
} else {
throw new CommandException("Вы можете использовать только кубическкую территорию.");
throw new CommandException(mayClaimRegionsUnbounded
?"Вы можете использовать только кубическую или полигональную территорию."
:"Вы можете использовать только кубическую территорию.");
}
} catch (IncompleteRegionException e) {
throw new CommandException("Сначала выделите территорию. " + "Используйте WorldEdit для выделения " + "(wiki: http://wiki.sk89q.com/wiki/WorldEdit).");
throw new CommandException("Сначала выделите территорию. " + "Используйте WorldEdit для выделения " + "(wiki: https://worldedit.enginehub.org).");
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public boolean execute(CommandSender sender, String label, String[] args) {
try {
WEClaimCommand.claim(regionname, sender);
if (!hasRegion && config.claimAutoFlagsEnabled) {
AutoFlags.setFlagsForRegion(WGRegionUtils.wrapPlayer(player), player.getWorld(), config, regionname);
AutoFlags.setFlagsForRegion(WGRegionUtils.FAKE_ACTOR, player.getWorld(), config, regionname);
}
} catch (CommandException ex) {
sender.sendMessage(ChatColor.RED + ex.getMessage());
Expand Down
82 changes: 82 additions & 0 deletions src/wgextender/utils/FakeActor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package wgextender.utils;

import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldedit.internal.cui.CUIEvent;
import com.sk89q.worldedit.session.SessionKey;
import com.sk89q.worldedit.util.auth.AuthorizationException;
import com.sk89q.worldedit.util.formatting.text.Component;
import org.bukkit.Bukkit;

import java.io.File;
import java.util.Locale;
import java.util.UUID;

final class FakeActor implements Actor {

FakeActor(){
}

@Override
public String getName() {
return Bukkit.getConsoleSender().getName();
}
@Override
public UUID getUniqueId() {
return null;
}
@Override
public SessionKey getSessionKey() {
return null;
}
@Override
public boolean hasPermission(String arg0) {
return true;
}
@Override
public void checkPermission(String arg0) throws AuthorizationException {
}
@Override
public String[] getGroups() {
return null;
}
@Override
public boolean canDestroyBedrock() {
return false;
}
@Override
public void dispatchCUIEvent(CUIEvent arg0) {
}

@Override
public Locale getLocale() {
return null;
}

@Override
public boolean isPlayer() {
return false;
}
@Override
public File openFileOpenDialog(String[] arg0) {
return null;
}
@Override
public File openFileSaveDialog(String[] arg0) {
return null;
}
@Override
public void print(String arg0) {
}
@Override
public void printDebug(String arg0) {
}
@Override
public void printError(String arg0) {
}
@Override
public void printRaw(String arg0) {
}
@Override
public void print(Component arg0) {
}
}
1 change: 1 addition & 0 deletions src/wgextender/utils/WGRegionUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.sk89q.worldguard.protection.regions.RegionQuery;

public class WGRegionUtils {
public static FakeActor FAKE_ACTOR = new FakeActor();

public static final RegionQuery REGION_QUERY = getRegionContainer().createQuery();

Expand Down