Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-24 18:10:08 +01:00
Update the Bukkit adapter to the Spigot API Preview
Dieser Commit ist enthalten in:
Ursprung
724661d903
Commit
ca06a05117
@ -10,8 +10,8 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compile project(':worldedit-core')
|
compile project(':worldedit-core')
|
||||||
compile 'com.sk89q:dummypermscompat:1.8'
|
compile 'com.sk89q:dummypermscompat:1.8'
|
||||||
// compile 'org.bukkit:bukkit:18w15a-R0.1-SNAPSHOT' // zzz
|
compile 'org.bukkit:bukkit:1.13-pre5-R0.1-SNAPSHOT' // zzz
|
||||||
compile 'org.bukkit:bukkit:1.9.4-R0.1-SNAPSHOT' // zzz
|
// compile 'org.bukkit:bukkit:1.9.4-R0.1-SNAPSHOT' // zzz
|
||||||
testCompile 'org.mockito:mockito-core:1.9.0-rc1'
|
testCompile 'org.mockito:mockito-core:1.9.0-rc1'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ public class CommandRegistration {
|
|||||||
|
|
||||||
public boolean unregisterCommands() {
|
public boolean unregisterCommands() {
|
||||||
CommandMap commandMap = getCommandMap();
|
CommandMap commandMap = getCommandMap();
|
||||||
List<String> toRemove = new ArrayList<String>();
|
List<String> toRemove = new ArrayList<>();
|
||||||
Map<String, org.bukkit.command.Command> knownCommands = ReflectionUtil.getField(commandMap, "knownCommands");
|
Map<String, org.bukkit.command.Command> knownCommands = ReflectionUtil.getField(commandMap, "knownCommands");
|
||||||
Set<String> aliases = ReflectionUtil.getField(commandMap, "aliases");
|
Set<String> aliases = ReflectionUtil.getField(commandMap, "aliases");
|
||||||
if (knownCommands == null || aliases == null) {
|
if (knownCommands == null || aliases == null) {
|
||||||
|
@ -50,7 +50,7 @@ public class CommandsManagerRegistration extends CommandRegistration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean registerAll(List<Command> registered) {
|
public boolean registerAll(List<Command> registered) {
|
||||||
List<CommandInfo> toRegister = new ArrayList<CommandInfo>();
|
List<CommandInfo> toRegister = new ArrayList<>();
|
||||||
for (Command command : registered) {
|
for (Command command : registered) {
|
||||||
List<String> permissions = null;
|
List<String> permissions = null;
|
||||||
Method cmdMethod = commands.getMethods().get(null).get(command.aliases()[0]);
|
Method cmdMethod = commands.getMethods().get(null).get(command.aliases()[0]);
|
||||||
@ -59,7 +59,7 @@ public class CommandsManagerRegistration extends CommandRegistration {
|
|||||||
if (cmdMethod != null && cmdMethod.isAnnotationPresent(CommandPermissions.class)) {
|
if (cmdMethod != null && cmdMethod.isAnnotationPresent(CommandPermissions.class)) {
|
||||||
permissions = Arrays.asList(cmdMethod.getAnnotation(CommandPermissions.class).value());
|
permissions = Arrays.asList(cmdMethod.getAnnotation(CommandPermissions.class).value());
|
||||||
} else if (cmdMethod != null && childMethods != null && !childMethods.isEmpty()) {
|
} else if (cmdMethod != null && childMethods != null && !childMethods.isEmpty()) {
|
||||||
permissions = new ArrayList<String>();
|
permissions = new ArrayList<>();
|
||||||
for (Method m : childMethods.values()) {
|
for (Method m : childMethods.values()) {
|
||||||
if (m.isAnnotationPresent(CommandPermissions.class)) {
|
if (m.isAnnotationPresent(CommandPermissions.class)) {
|
||||||
permissions.addAll(Arrays.asList(m.getAnnotation(CommandPermissions.class).value()));
|
permissions.addAll(Arrays.asList(m.getAnnotation(CommandPermissions.class).value()));
|
||||||
|
@ -52,11 +52,11 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load() {
|
public void load() {
|
||||||
userGroups = new HashMap<String, Set<String>>();
|
userGroups = new HashMap<>();
|
||||||
userPermissionsCache = new HashMap<String, Set<String>>();
|
userPermissionsCache = new HashMap<>();
|
||||||
defaultPermissionsCache = new HashSet<String>();
|
defaultPermissionsCache = new HashSet<>();
|
||||||
|
|
||||||
Map<String, Set<String>> userGroupPermissions = new HashMap<String, Set<String>>();
|
Map<String, Set<String>> userGroupPermissions = new HashMap<>();
|
||||||
|
|
||||||
List<String> groupKeys = config.getStringList("permissions.groups", null);
|
List<String> groupKeys = config.getStringList("permissions.groups", null);
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
|||||||
config.getStringList("permissions.groups." + key + ".permissions", null);
|
config.getStringList("permissions.groups." + key + ".permissions", null);
|
||||||
|
|
||||||
if (!permissions.isEmpty()) {
|
if (!permissions.isEmpty()) {
|
||||||
Set<String> groupPerms = new HashSet<String>(permissions);
|
Set<String> groupPerms = new HashSet<>(permissions);
|
||||||
userGroupPermissions.put(key, groupPerms);
|
userGroupPermissions.put(key, groupPerms);
|
||||||
|
|
||||||
if (key.equals("default")) {
|
if (key.equals("default")) {
|
||||||
@ -80,7 +80,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
|||||||
|
|
||||||
if (userKeys != null) {
|
if (userKeys != null) {
|
||||||
for (String key : userKeys) {
|
for (String key : userKeys) {
|
||||||
Set<String> permsCache = new HashSet<String>();
|
Set<String> permsCache = new HashSet<>();
|
||||||
|
|
||||||
List<String> permissions =
|
List<String> permissions =
|
||||||
config.getStringList("permissions.users." + key + ".permissions", null);
|
config.getStringList("permissions.users." + key + ".permissions", null);
|
||||||
@ -103,7 +103,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
userPermissionsCache.put(key.toLowerCase(), permsCache);
|
userPermissionsCache.put(key.toLowerCase(), permsCache);
|
||||||
userGroups.put(key.toLowerCase(), new HashSet<String>(groups));
|
userGroups.put(key.toLowerCase(), new HashSet<>(groups));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,13 +114,13 @@ public class DinnerPermsResolver implements PermissionsResolver {
|
|||||||
if (perms == null) {
|
if (perms == null) {
|
||||||
return new String[0];
|
return new String[0];
|
||||||
}
|
}
|
||||||
List<String> groupNames = new ArrayList<String>();
|
List<String> groupNames = new ArrayList<>();
|
||||||
for (PermissionAttachmentInfo permAttach : perms.getEffectivePermissions()) {
|
for (PermissionAttachmentInfo permAttach : perms.getEffectivePermissions()) {
|
||||||
String perm = permAttach.getPermission();
|
String perm = permAttach.getPermission();
|
||||||
if (!(perm.startsWith(GROUP_PREFIX) && permAttach.getValue())) {
|
if (!(perm.startsWith(GROUP_PREFIX) && permAttach.getValue())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
groupNames.add(perm.substring(GROUP_PREFIX.length(), perm.length()));
|
groupNames.add(perm.substring(GROUP_PREFIX.length()));
|
||||||
}
|
}
|
||||||
return groupNames.toArray(new String[groupNames.size()]);
|
return groupNames.toArray(new String[groupNames.size()]);
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Set<String>> loadGroupPermissions() {
|
public Map<String, Set<String>> loadGroupPermissions() {
|
||||||
Map<String, Set<String>> userGroupPermissions = new HashMap<String, Set<String>>();
|
Map<String, Set<String>> userGroupPermissions = new HashMap<>();
|
||||||
|
|
||||||
BufferedReader buff = null;
|
BufferedReader buff = null;
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
|||||||
if (parts.length > 1) {
|
if (parts.length > 1) {
|
||||||
String[] perms = parts[1].split(",");
|
String[] perms = parts[1].split(",");
|
||||||
|
|
||||||
Set<String> groupPerms = new HashSet<String>(Arrays.asList(perms));
|
Set<String> groupPerms = new HashSet<>(Arrays.asList(perms));
|
||||||
userGroupPermissions.put(key, groupPerms);
|
userGroupPermissions.put(key, groupPerms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,9 +113,9 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load() {
|
public void load() {
|
||||||
userGroups = new HashMap<String, Set<String>>();
|
userGroups = new HashMap<>();
|
||||||
userPermissionsCache = new HashMap<String, Set<String>>();
|
userPermissionsCache = new HashMap<>();
|
||||||
defaultPermissionsCache = new HashSet<String>();
|
defaultPermissionsCache = new HashSet<>();
|
||||||
|
|
||||||
Map<String, Set<String>> userGroupPermissions = loadGroupPermissions();
|
Map<String, Set<String>> userGroupPermissions = loadGroupPermissions();
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
|||||||
|
|
||||||
String line;
|
String line;
|
||||||
while ((line = buff.readLine()) != null) {
|
while ((line = buff.readLine()) != null) {
|
||||||
Set<String> permsCache = new HashSet<String>();
|
Set<String> permsCache = new HashSet<>();
|
||||||
|
|
||||||
line = line.trim();
|
line = line.trim();
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
userPermissionsCache.put(key.toLowerCase(), permsCache);
|
userPermissionsCache.put(key.toLowerCase(), permsCache);
|
||||||
userGroups.put(key.toLowerCase(), new HashSet<String>(Arrays.asList(groups)));
|
userGroups.put(key.toLowerCase(), new HashSet<>(Arrays.asList(groups)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -50,7 +50,7 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
|||||||
Plugin plugin = pluginManager.getPlugin("Permissions");
|
Plugin plugin = pluginManager.getPlugin("Permissions");
|
||||||
|
|
||||||
// Check if plugin is loaded and has Permissions interface
|
// Check if plugin is loaded and has Permissions interface
|
||||||
if (plugin == null || !(plugin instanceof Permissions)) {
|
if (!(plugin instanceof Permissions)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,19 +22,19 @@ package com.sk89q.wepif;
|
|||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
public interface PermissionsProvider {
|
public interface PermissionsProvider {
|
||||||
public boolean hasPermission(String name, String permission);
|
boolean hasPermission(String name, String permission);
|
||||||
|
|
||||||
public boolean hasPermission(String worldName, String name, String permission);
|
boolean hasPermission(String worldName, String name, String permission);
|
||||||
|
|
||||||
public boolean inGroup(String player, String group);
|
boolean inGroup(String player, String group);
|
||||||
|
|
||||||
public String[] getGroups(String player);
|
String[] getGroups(String player);
|
||||||
|
|
||||||
public boolean hasPermission(OfflinePlayer player, String permission);
|
boolean hasPermission(OfflinePlayer player, String permission);
|
||||||
|
|
||||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission);
|
boolean hasPermission(String worldName, OfflinePlayer player, String permission);
|
||||||
|
|
||||||
public boolean inGroup(OfflinePlayer player, String group);
|
boolean inGroup(OfflinePlayer player, String group);
|
||||||
|
|
||||||
public String[] getGroups(OfflinePlayer player);
|
String[] getGroups(OfflinePlayer player);
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
package com.sk89q.wepif;
|
package com.sk89q.wepif;
|
||||||
|
|
||||||
public interface PermissionsResolver extends PermissionsProvider {
|
public interface PermissionsResolver extends PermissionsProvider {
|
||||||
public void load();
|
void load();
|
||||||
|
|
||||||
public String getDetectionMessage();
|
String getDetectionMessage();
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
|||||||
private PermissionsResolver permissionResolver;
|
private PermissionsResolver permissionResolver;
|
||||||
private YAMLProcessor config;
|
private YAMLProcessor config;
|
||||||
private Logger logger = Logger.getLogger(getClass().getCanonicalName());
|
private Logger logger = Logger.getLogger(getClass().getCanonicalName());
|
||||||
private List<Class<? extends PermissionsResolver>> enabledResolvers = new ArrayList<Class<? extends PermissionsResolver>>();
|
private List<Class<? extends PermissionsResolver>> enabledResolvers = new ArrayList<>();
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
protected Class<? extends PermissionsResolver>[] availableResolvers = new Class[] {
|
protected Class<? extends PermissionsResolver>[] availableResolvers = new Class[] {
|
||||||
@ -213,7 +213,7 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
|||||||
|
|
||||||
if (!keys.contains("resolvers")) {
|
if (!keys.contains("resolvers")) {
|
||||||
//List<String> resolverKeys = config.getKeys("resolvers");
|
//List<String> resolverKeys = config.getKeys("resolvers");
|
||||||
List<String> resolvers = new ArrayList<String>();
|
List<String> resolvers = new ArrayList<>();
|
||||||
for (Class<?> clazz : availableResolvers) {
|
for (Class<?> clazz : availableResolvers) {
|
||||||
resolvers.add(clazz.getSimpleName());
|
resolvers.add(clazz.getSimpleName());
|
||||||
}
|
}
|
||||||
@ -221,7 +221,7 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
|||||||
config.setProperty("resolvers.enabled", resolvers);
|
config.setProperty("resolvers.enabled", resolvers);
|
||||||
isUpdated = true;
|
isUpdated = true;
|
||||||
} else {
|
} else {
|
||||||
List<String> disabledResolvers = config.getStringList("resolvers.disabled", new ArrayList<String>());
|
List<String> disabledResolvers = config.getStringList("resolvers.disabled", new ArrayList<>());
|
||||||
List<String> stagedEnabled = config.getStringList("resolvers.enabled", null);
|
List<String> stagedEnabled = config.getStringList("resolvers.enabled", null);
|
||||||
for (Iterator<String> i = stagedEnabled.iterator(); i.hasNext();) {
|
for (Iterator<String> i = stagedEnabled.iterator(); i.hasNext();) {
|
||||||
String nextName = i.next();
|
String nextName = i.next();
|
||||||
|
@ -138,7 +138,7 @@ class BukkitEntityType implements EntityType {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isTagged() {
|
public boolean isTagged() {
|
||||||
return entity instanceof LivingEntity && ((LivingEntity) entity).getCustomName() != null;
|
return entity instanceof LivingEntity && entity.getCustomName() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -69,7 +69,7 @@ public class BukkitPlayer extends AbstractPlayerActor {
|
|||||||
ItemStack itemStack = handSide == HandSide.MAIN_HAND
|
ItemStack itemStack = handSide == HandSide.MAIN_HAND
|
||||||
? player.getInventory().getItemInMainHand()
|
? player.getInventory().getItemInMainHand()
|
||||||
: player.getInventory().getItemInOffHand();
|
: player.getInventory().getItemInOffHand();
|
||||||
return BukkitUtil.toBlock(itemStack);
|
return new BaseBlock(BukkitUtil.toBlock(itemStack));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -79,7 +79,7 @@ public class BukkitPlayer extends AbstractPlayerActor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void giveItem(BaseItemStack itemStack) {
|
public void giveItem(BaseItemStack itemStack) {
|
||||||
player.getInventory().addItem(new ItemStack(itemStack.getLegacyId(), itemStack.getAmount()));
|
player.getInventory().addItem(BukkitUtil.toItemStack(itemStack));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -223,7 +223,7 @@ public class BukkitPlayer extends AbstractPlayerActor {
|
|||||||
// CopyOnWrite list for the list of players, but the Bukkit
|
// CopyOnWrite list for the list of players, but the Bukkit
|
||||||
// specification doesn't require thread safety (though the
|
// specification doesn't require thread safety (though the
|
||||||
// spec is extremely incomplete)
|
// spec is extremely incomplete)
|
||||||
return Bukkit.getServer().getPlayerExact(name) != null;
|
return Bukkit.getServer().getPlayer(uuid) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
package com.sk89q.worldedit.bukkit;
|
package com.sk89q.worldedit.bukkit;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
||||||
@ -78,8 +79,7 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bukkitItem.getTypeId() != blockState.getBlockType().getLegacyId()) {
|
if (!bukkitItem.getType().getKey().toString().equals(blockState.getBlockType().getId())) {
|
||||||
// TODO Fix when bukkit gets not awful
|
|
||||||
// Type id doesn't fit
|
// Type id doesn't fit
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -111,6 +111,9 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
|||||||
if (blockState.getBlockType() == BlockTypes.AIR) {
|
if (blockState.getBlockType() == BlockTypes.AIR) {
|
||||||
throw new IllegalArgumentException("Can't store air block");
|
throw new IllegalArgumentException("Can't store air block");
|
||||||
}
|
}
|
||||||
|
if (!blockState.getBlockType().hasItemType()) {
|
||||||
|
throw new IllegalArgumentException("This block cannot be stored");
|
||||||
|
}
|
||||||
|
|
||||||
loadInventory();
|
loadInventory();
|
||||||
|
|
||||||
@ -129,8 +132,7 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bukkitItem.getTypeId() != blockState.getBlockType().getLegacyId()) {
|
if (!bukkitItem.getType().getKey().toString().equals(blockState.getBlockType().getId())) {
|
||||||
// TODO Fix when bukkit gets not terrible
|
|
||||||
// Type id doesn't fit
|
// Type id doesn't fit
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -156,7 +158,7 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (freeSlot > -1) {
|
if (freeSlot > -1) {
|
||||||
items[freeSlot] = new ItemStack(blockState.getBlockType().getLegacyId(), amount); // TODO Ditto
|
items[freeSlot] = new ItemStack(BukkitUtil.toItemStack(new BaseItemStack(blockState.getBlockType().getItemType(), amount)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public class BukkitServerInterface implements MultiUserPlatform {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerCommands(Dispatcher dispatcher) {
|
public void registerCommands(Dispatcher dispatcher) {
|
||||||
List<CommandInfo> toRegister = new ArrayList<CommandInfo>();
|
List<CommandInfo> toRegister = new ArrayList<>();
|
||||||
BukkitCommandInspector inspector = new BukkitCommandInspector(plugin, dispatcher);
|
BukkitCommandInspector inspector = new BukkitCommandInspector(plugin, dispatcher);
|
||||||
|
|
||||||
for (CommandMapping command : dispatcher.getCommands()) {
|
for (CommandMapping command : dispatcher.getCommands()) {
|
||||||
@ -159,7 +159,7 @@ public class BukkitServerInterface implements MultiUserPlatform {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Capability, Preference> getCapabilities() {
|
public Map<Capability, Preference> getCapabilities() {
|
||||||
Map<Capability, Preference> capabilities = new EnumMap<Capability, Preference>(Capability.class);
|
Map<Capability, Preference> capabilities = new EnumMap<>(Capability.class);
|
||||||
capabilities.put(Capability.CONFIGURATION, Preference.NORMAL);
|
capabilities.put(Capability.CONFIGURATION, Preference.NORMAL);
|
||||||
capabilities.put(Capability.WORLDEDIT_CUI, Preference.NORMAL);
|
capabilities.put(Capability.WORLDEDIT_CUI, Preference.NORMAL);
|
||||||
capabilities.put(Capability.GAME_HOOKS, Preference.PREFERRED);
|
capabilities.put(Capability.GAME_HOOKS, Preference.PREFERRED);
|
||||||
@ -175,7 +175,7 @@ public class BukkitServerInterface implements MultiUserPlatform {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Actor> getConnectedUsers() {
|
public Collection<Actor> getConnectedUsers() {
|
||||||
List<Actor> users = new ArrayList<Actor>();
|
List<Actor> users = new ArrayList<>();
|
||||||
for (org.bukkit.entity.Player player : Bukkit.getServer().getOnlinePlayers()) {
|
for (org.bukkit.entity.Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
users.add(new BukkitPlayer(plugin, player));
|
users.add(new BukkitPlayer(plugin, player));
|
||||||
}
|
}
|
||||||
|
@ -22,17 +22,19 @@ package com.sk89q.worldedit.bukkit;
|
|||||||
import com.sk89q.worldedit.BlockVector;
|
import com.sk89q.worldedit.BlockVector;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
|
||||||
import com.sk89q.worldedit.world.item.ItemType;
|
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
import com.sk89q.worldedit.util.Location;
|
import com.sk89q.worldedit.util.Location;
|
||||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
|
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@ -121,17 +123,28 @@ public final class BukkitUtil {
|
|||||||
return ((BukkitWorld) world).getWorld();
|
return ((BukkitWorld) world).getWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BaseBlock toBlock(ItemStack itemStack) throws WorldEditException {
|
public static BlockState toBlock(BlockData blockData) {
|
||||||
ItemType itemType = LegacyMapper.getInstance().getItemFromLegacy(itemStack.getTypeId(), itemStack.getData().getData());
|
return null; // TODO BLOCKING
|
||||||
if (itemType.hasBlockType()) {
|
}
|
||||||
return new BaseBlock(itemType.getBlockType().getDefaultState());
|
|
||||||
|
public static BlockData toBlock(BlockStateHolder block) {
|
||||||
|
return Bukkit.createBlockData(block.toString()); // TODO BLOCKING
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BlockState toBlock(ItemStack itemStack) throws WorldEditException {
|
||||||
|
if (itemStack.getType().isBlock()) {
|
||||||
|
return toBlock(itemStack.getType().createBlockData());
|
||||||
} else {
|
} else {
|
||||||
return new BaseBlock(BlockTypes.AIR.getDefaultState());
|
return BlockTypes.AIR.getDefaultState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BaseItemStack toBaseItemStack(ItemStack itemStack) {
|
public static BaseItemStack toBaseItemStack(ItemStack itemStack) {
|
||||||
ItemType itemType = LegacyMapper.getInstance().getItemFromLegacy(itemStack.getTypeId(), itemStack.getData().getData());
|
return new BaseItemStack(ItemTypes.get(itemStack.getType().getKey().toString()), itemStack.getAmount());
|
||||||
return new BaseItemStack(itemType, itemStack.getAmount());
|
}
|
||||||
|
|
||||||
|
public static ItemStack toItemStack(BaseItemStack item) {
|
||||||
|
BlockData blockData = Bukkit.createBlockData(item.getType().getId());
|
||||||
|
return new ItemStack(blockData.getMaterial(), item.getAmount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,6 @@ import com.sk89q.worldedit.WorldEditException;
|
|||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||||
import com.sk89q.worldedit.blocks.LazyBlock;
|
import com.sk89q.worldedit.blocks.LazyBlock;
|
||||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
|
||||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
||||||
import com.sk89q.worldedit.entity.BaseEntity;
|
import com.sk89q.worldedit.entity.BaseEntity;
|
||||||
import com.sk89q.worldedit.history.change.BlockChange;
|
import com.sk89q.worldedit.history.change.BlockChange;
|
||||||
@ -38,7 +37,7 @@ import com.sk89q.worldedit.regions.Region;
|
|||||||
import com.sk89q.worldedit.util.TreeGenerator;
|
import com.sk89q.worldedit.util.TreeGenerator;
|
||||||
import com.sk89q.worldedit.world.AbstractWorld;
|
import com.sk89q.worldedit.world.AbstractWorld;
|
||||||
import com.sk89q.worldedit.world.biome.BaseBiome;
|
import com.sk89q.worldedit.world.biome.BaseBiome;
|
||||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.TreeType;
|
import org.bukkit.TreeType;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -49,7 +48,6 @@ import org.bukkit.block.Chest;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.inventory.DoubleChestInventory;
|
import org.bukkit.inventory.DoubleChestInventory;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -286,15 +284,16 @@ public class BukkitWorld extends AbstractWorld {
|
|||||||
public boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, Vector pt) {
|
public boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, Vector pt) {
|
||||||
World world = getWorld();
|
World world = getWorld();
|
||||||
TreeType bukkitType = toBukkitTreeType(type);
|
TreeType bukkitType = toBukkitTreeType(type);
|
||||||
return type != null && world.generateTree(BukkitUtil.toLocation(world, pt), bukkitType,
|
return type != null && world.generateTree(BukkitUtil.toLocation(world, pt), bukkitType);
|
||||||
new EditSessionBlockChangeDelegate(editSession));
|
// return type != null && world.generateTree(BukkitUtil.toLocation(world, pt), bukkitType,
|
||||||
|
// new EditSessionBlockChangeDelegate(editSession));
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dropItem(Vector pt, BaseItemStack item) {
|
public void dropItem(Vector pt, BaseItemStack item) {
|
||||||
World world = getWorld();
|
World world = getWorld();
|
||||||
ItemStack bukkitItem = new ItemStack(item.getLegacyId(), item.getAmount()); // TODO Add data.
|
world.dropItemNaturally(BukkitUtil.toLocation(world, pt), BukkitUtil.toItemStack(item));
|
||||||
world.dropItemNaturally(BukkitUtil.toLocation(world, pt), bukkitItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -359,7 +358,7 @@ public class BukkitWorld extends AbstractWorld {
|
|||||||
@Override
|
@Override
|
||||||
public com.sk89q.worldedit.world.block.BlockState getBlock(Vector position) {
|
public com.sk89q.worldedit.world.block.BlockState getBlock(Vector position) {
|
||||||
Block bukkitBlock = getWorld().getBlockAt(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
Block bukkitBlock = getWorld().getBlockAt(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
||||||
return LegacyMapper.getInstance().getBlockFromLegacy(bukkitBlock.getTypeId(), bukkitBlock.getData());
|
return BukkitUtil.toBlock(bukkitBlock.getBlockData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -369,11 +368,8 @@ public class BukkitWorld extends AbstractWorld {
|
|||||||
return adapter.setBlock(BukkitAdapter.adapt(getWorld(), position), block, notifyAndLight);
|
return adapter.setBlock(BukkitAdapter.adapt(getWorld(), position), block, notifyAndLight);
|
||||||
} else {
|
} else {
|
||||||
Block bukkitBlock = getWorld().getBlockAt(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
Block bukkitBlock = getWorld().getBlockAt(position.getBlockX(), position.getBlockY(), position.getBlockZ());
|
||||||
int[] datas = LegacyMapper.getInstance().getLegacyFromBlock(block.toImmutableState());
|
bukkitBlock.setData(BukkitUtil.toBlock(block), notifyAndLight);
|
||||||
if (datas == null) {
|
return true;
|
||||||
throw new WorldEditException("Unknown block"){}; // TODO Remove.
|
|
||||||
}
|
|
||||||
return bukkitBlock.setTypeIdAndData(datas[0], (byte) datas[1], notifyAndLight);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,17 +19,12 @@
|
|||||||
|
|
||||||
package com.sk89q.worldedit.bukkit;
|
package com.sk89q.worldedit.bukkit;
|
||||||
|
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
|
||||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
|
||||||
import org.bukkit.BlockChangeDelegate;
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.Vector;
|
|
||||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proxy class to catch calls to set blocks.
|
* Proxy class to catch calls to set blocks.
|
||||||
*/
|
*/
|
||||||
public class EditSessionBlockChangeDelegate implements BlockChangeDelegate {
|
public class EditSessionBlockChangeDelegate {//implements BlockChangeDelegate {
|
||||||
|
|
||||||
private EditSession editSession;
|
private EditSession editSession;
|
||||||
|
|
||||||
@ -37,48 +32,50 @@ public class EditSessionBlockChangeDelegate implements BlockChangeDelegate {
|
|||||||
this.editSession = editSession;
|
this.editSession = editSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// TODO This needs a fix in Spigot itself
|
||||||
public boolean setRawTypeId(int x, int y, int z, int typeId) {
|
|
||||||
try {
|
|
||||||
return editSession.setBlock(new Vector(x, y, z), LegacyMapper.getInstance().getBlockFromLegacy(typeId));
|
|
||||||
} catch (MaxChangedBlocksException ex) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
public boolean setRawTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
// public boolean setRawTypeId(int x, int y, int z, int typeId) {
|
||||||
try {
|
// try {
|
||||||
return editSession.setBlock(new Vector(x, y, z), LegacyMapper.getInstance().getBlockFromLegacy(typeId, data));
|
// return editSession.setBlock(new Vector(x, y, z), LegacyMapper.getInstance().getBlockFromLegacy(typeId));
|
||||||
} catch (MaxChangedBlocksException ex) {
|
// } catch (MaxChangedBlocksException ex) {
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public boolean setTypeId(int x, int y, int z, int typeId) {
|
// public boolean setRawTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
||||||
return setRawTypeId(x, y, z, typeId);
|
// try {
|
||||||
}
|
// return editSession.setBlock(new Vector(x, y, z), LegacyMapper.getInstance().getBlockFromLegacy(typeId, data));
|
||||||
|
// } catch (MaxChangedBlocksException ex) {
|
||||||
@Override
|
// return false;
|
||||||
public boolean setTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
// }
|
||||||
return setRawTypeIdAndData(x, y, z, typeId, data);
|
// }
|
||||||
}
|
//
|
||||||
|
// @Override
|
||||||
@Override
|
// public boolean setTypeId(int x, int y, int z, int typeId) {
|
||||||
public int getTypeId(int x, int y, int z) {
|
// return setRawTypeId(x, y, z, typeId);
|
||||||
int[] datas = LegacyMapper.getInstance().getLegacyFromBlock(editSession.getBlock(new Vector(x, y, z)));
|
// }
|
||||||
return datas[0];
|
//
|
||||||
}
|
// @Override
|
||||||
|
// public boolean setTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
||||||
@Override
|
// return setRawTypeIdAndData(x, y, z, typeId, data);
|
||||||
public int getHeight() {
|
// }
|
||||||
return editSession.getWorld().getMaxY() + 1;
|
//
|
||||||
}
|
// @Override
|
||||||
|
// public int getTypeId(int x, int y, int z) {
|
||||||
@Override
|
// int[] datas = LegacyMapper.getInstance().getLegacyFromBlock(editSession.getBlock(new Vector(x, y, z)));
|
||||||
public boolean isEmpty(int x, int y, int z) {
|
// return datas[0];
|
||||||
return editSession.getBlock(new Vector(x, y, z)).getBlockType() == BlockTypes.AIR;
|
// }
|
||||||
}
|
//
|
||||||
|
// @Override
|
||||||
|
// public int getHeight() {
|
||||||
|
// return editSession.getWorld().getMaxY() + 1;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public boolean isEmpty(int x, int y, int z) {
|
||||||
|
// return editSession.getBlock(new Vector(x, y, z)).getBlockType() == BlockTypes.AIR;
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,16 +25,11 @@ import com.google.common.base.Joiner;
|
|||||||
import com.sk89q.util.yaml.YAMLProcessor;
|
import com.sk89q.util.yaml.YAMLProcessor;
|
||||||
import com.sk89q.wepif.PermissionsResolverManager;
|
import com.sk89q.wepif.PermissionsResolverManager;
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.IncompleteRegionException;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.AdapterLoadException;
|
import com.sk89q.worldedit.bukkit.adapter.AdapterLoadException;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader;
|
import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader;
|
||||||
import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
|
|
||||||
import com.sk89q.worldedit.bukkit.selections.CylinderSelection;
|
|
||||||
import com.sk89q.worldedit.bukkit.selections.Polygonal2DSelection;
|
|
||||||
import com.sk89q.worldedit.bukkit.selections.Selection;
|
|
||||||
import com.sk89q.worldedit.event.platform.CommandEvent;
|
import com.sk89q.worldedit.event.platform.CommandEvent;
|
||||||
import com.sk89q.worldedit.event.platform.CommandSuggestionEvent;
|
import com.sk89q.worldedit.event.platform.CommandSuggestionEvent;
|
||||||
import com.sk89q.worldedit.event.platform.PlatformReadyEvent;
|
import com.sk89q.worldedit.event.platform.PlatformReadyEvent;
|
||||||
@ -42,12 +37,6 @@ import com.sk89q.worldedit.extension.platform.Actor;
|
|||||||
import com.sk89q.worldedit.extension.platform.Capability;
|
import com.sk89q.worldedit.extension.platform.Capability;
|
||||||
import com.sk89q.worldedit.extension.platform.Platform;
|
import com.sk89q.worldedit.extension.platform.Platform;
|
||||||
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
||||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
|
||||||
import com.sk89q.worldedit.regions.CylinderRegion;
|
|
||||||
import com.sk89q.worldedit.regions.Polygonal2DRegion;
|
|
||||||
import com.sk89q.worldedit.regions.Region;
|
|
||||||
import com.sk89q.worldedit.regions.RegionSelector;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
@ -73,7 +62,7 @@ import javax.annotation.Nullable;
|
|||||||
public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(WorldEditPlugin.class.getCanonicalName());
|
private static final Logger log = Logger.getLogger(WorldEditPlugin.class.getCanonicalName());
|
||||||
public static final String CUI_PLUGIN_CHANNEL = "WECUI";
|
public static final String CUI_PLUGIN_CHANNEL = "worldedit:cui";
|
||||||
private static WorldEditPlugin INSTANCE;
|
private static WorldEditPlugin INSTANCE;
|
||||||
|
|
||||||
private BukkitImplAdapter bukkitAdapter;
|
private BukkitImplAdapter bukkitAdapter;
|
||||||
@ -346,64 +335,6 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
|||||||
return WorldEdit.getInstance();
|
return WorldEdit.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the region selection for the player.
|
|
||||||
*
|
|
||||||
* @param player aplayer
|
|
||||||
* @return the selection or null if there was none
|
|
||||||
*/
|
|
||||||
public Selection getSelection(Player player) {
|
|
||||||
if (player == null) {
|
|
||||||
throw new IllegalArgumentException("Null player not allowed");
|
|
||||||
}
|
|
||||||
if (!player.isOnline()) {
|
|
||||||
throw new IllegalArgumentException("Offline player not allowed");
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalSession session = WorldEdit.getInstance().getSessionManager().get(wrapPlayer(player));
|
|
||||||
RegionSelector selector = session.getRegionSelector(BukkitUtil.getWorld(player.getWorld()));
|
|
||||||
|
|
||||||
try {
|
|
||||||
Region region = selector.getRegion();
|
|
||||||
World world = BukkitAdapter.asBukkitWorld(session.getSelectionWorld()).getWorld();
|
|
||||||
|
|
||||||
if (region instanceof CuboidRegion) {
|
|
||||||
return new CuboidSelection(world, selector, (CuboidRegion) region);
|
|
||||||
} else if (region instanceof Polygonal2DRegion) {
|
|
||||||
return new Polygonal2DSelection(world, selector, (Polygonal2DRegion) region);
|
|
||||||
} else if (region instanceof CylinderRegion) {
|
|
||||||
return new CylinderSelection(world, selector, (CylinderRegion) region);
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} catch (IncompleteRegionException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the region selection for a player.
|
|
||||||
*
|
|
||||||
* @param player the player
|
|
||||||
* @param selection a selection
|
|
||||||
*/
|
|
||||||
public void setSelection(Player player, Selection selection) {
|
|
||||||
if (player == null) {
|
|
||||||
throw new IllegalArgumentException("Null player not allowed");
|
|
||||||
}
|
|
||||||
if (!player.isOnline()) {
|
|
||||||
throw new IllegalArgumentException("Offline player not allowed");
|
|
||||||
}
|
|
||||||
if (selection == null) {
|
|
||||||
throw new IllegalArgumentException("Null selection not allowed");
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalSession session = WorldEdit.getInstance().getSessionManager().get(wrapPlayer(player));
|
|
||||||
RegionSelector sel = selection.getRegionSelector();
|
|
||||||
session.setRegionSelector(BukkitUtil.getWorld(player.getWorld()), sel);
|
|
||||||
session.dispatchCUISelection(wrapPlayer(player));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the instance of this plugin.
|
* Gets the instance of this plugin.
|
||||||
*
|
*
|
||||||
|
@ -38,7 +38,7 @@ import java.util.logging.Logger;
|
|||||||
public class BukkitImplLoader {
|
public class BukkitImplLoader {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(BukkitImplLoader.class.getCanonicalName());
|
private static final Logger log = Logger.getLogger(BukkitImplLoader.class.getCanonicalName());
|
||||||
private final List<String> adapterCandidates = new ArrayList<String>();
|
private final List<String> adapterCandidates = new ArrayList<>();
|
||||||
private String customCandidate;
|
private String customCandidate;
|
||||||
|
|
||||||
private static final String SEARCH_PACKAGE = "com.sk89q.worldedit.bukkit.adapter.impl";
|
private static final String SEARCH_PACKAGE = "com.sk89q.worldedit.bukkit.adapter.impl";
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
/*
|
|
||||||
* WorldEdit, a Minecraft world manipulation toolkit
|
|
||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
|
||||||
* Copyright (C) WorldEdit team and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sk89q.worldedit.bukkit.selections;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.Vector;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
|
||||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
|
||||||
import com.sk89q.worldedit.regions.RegionSelector;
|
|
||||||
import com.sk89q.worldedit.regions.selector.CuboidRegionSelector;
|
|
||||||
import com.sk89q.worldedit.regions.selector.limit.PermissiveSelectorLimits;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
|
|
||||||
public class CuboidSelection extends RegionSelection {
|
|
||||||
|
|
||||||
protected CuboidRegion cuboid;
|
|
||||||
|
|
||||||
public CuboidSelection(World world, Location pt1, Location pt2) {
|
|
||||||
this(world, BukkitUtil.toVector(pt1), BukkitUtil.toVector(pt2));
|
|
||||||
}
|
|
||||||
|
|
||||||
public CuboidSelection(World world, Vector pt1, Vector pt2) {
|
|
||||||
super(world);
|
|
||||||
|
|
||||||
// Validate input
|
|
||||||
if (pt1 == null) {
|
|
||||||
throw new IllegalArgumentException("Null point 1 not permitted");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pt2 == null) {
|
|
||||||
throw new IllegalArgumentException("Null point 2 not permitted");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create new selector
|
|
||||||
CuboidRegionSelector sel = new CuboidRegionSelector(BukkitUtil.getWorld(world));
|
|
||||||
|
|
||||||
// set up selector
|
|
||||||
sel.selectPrimary(pt1, PermissiveSelectorLimits.getInstance());
|
|
||||||
sel.selectSecondary(pt2, PermissiveSelectorLimits.getInstance());
|
|
||||||
|
|
||||||
// set up CuboidSelection
|
|
||||||
cuboid = sel.getIncompleteRegion();
|
|
||||||
|
|
||||||
// set up RegionSelection
|
|
||||||
setRegionSelector(sel);
|
|
||||||
setRegion(cuboid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CuboidSelection(World world, RegionSelector sel, CuboidRegion region) {
|
|
||||||
super(world, sel, region);
|
|
||||||
this.cuboid = region;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* WorldEdit, a Minecraft world manipulation toolkit
|
|
||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
|
||||||
* Copyright (C) WorldEdit team and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sk89q.worldedit.bukkit.selections;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.regions.selector.CylinderRegionSelector;
|
|
||||||
import org.bukkit.World;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.BlockVector2D;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
|
||||||
import com.sk89q.worldedit.regions.CylinderRegion;
|
|
||||||
import com.sk89q.worldedit.regions.RegionSelector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A selection representing a {@link CylinderRegion}
|
|
||||||
*/
|
|
||||||
public class CylinderSelection extends RegionSelection {
|
|
||||||
|
|
||||||
private CylinderRegion cylRegion;
|
|
||||||
|
|
||||||
public CylinderSelection(World world, RegionSelector selector, CylinderRegion region) {
|
|
||||||
super(world, selector, region);
|
|
||||||
this.cylRegion = region;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CylinderSelection(World world, BlockVector2D center, BlockVector2D radius, int minY, int maxY) {
|
|
||||||
super(world);
|
|
||||||
com.sk89q.worldedit.world.World lWorld = BukkitUtil.getWorld(world);
|
|
||||||
|
|
||||||
// Validate input
|
|
||||||
minY = Math.min(Math.max(0, minY), world.getMaxHeight());
|
|
||||||
maxY = Math.min(Math.max(0, maxY), world.getMaxHeight());
|
|
||||||
|
|
||||||
// Create and set up new selector
|
|
||||||
CylinderRegionSelector sel = new CylinderRegionSelector(lWorld, center, radius, minY, maxY);
|
|
||||||
|
|
||||||
// set up selection
|
|
||||||
cylRegion = sel.getIncompleteRegion();
|
|
||||||
|
|
||||||
// set up RegionSelection
|
|
||||||
setRegionSelector(sel);
|
|
||||||
setRegion(cylRegion);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the center vector of the cylinder
|
|
||||||
*
|
|
||||||
* @return the center
|
|
||||||
*/
|
|
||||||
public BlockVector2D getCenter() {
|
|
||||||
return cylRegion.getCenter().toVector2D().toBlockVector2D();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the radius vector of the cylinder
|
|
||||||
*
|
|
||||||
* @return the radius
|
|
||||||
*/
|
|
||||||
public BlockVector2D getRadius() {
|
|
||||||
return cylRegion.getRadius().toBlockVector2D();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* WorldEdit, a Minecraft world manipulation toolkit
|
|
||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
|
||||||
* Copyright (C) WorldEdit team and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sk89q.worldedit.bukkit.selections;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.regions.selector.Polygonal2DRegionSelector;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import com.sk89q.worldedit.BlockVector2D;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
|
||||||
import com.sk89q.worldedit.regions.*;
|
|
||||||
|
|
||||||
public class Polygonal2DSelection extends RegionSelection {
|
|
||||||
|
|
||||||
protected Polygonal2DRegion poly2d;
|
|
||||||
|
|
||||||
public Polygonal2DSelection(World world, RegionSelector sel, Polygonal2DRegion region) {
|
|
||||||
super(world, sel, region);
|
|
||||||
this.poly2d = region;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Polygonal2DSelection(World world, List<BlockVector2D> points, int minY, int maxY) {
|
|
||||||
super(world);
|
|
||||||
com.sk89q.worldedit.world.World lWorld = BukkitUtil.getWorld(world);
|
|
||||||
|
|
||||||
// Validate input
|
|
||||||
minY = Math.min(Math.max(0, minY), world.getMaxHeight());
|
|
||||||
maxY = Math.min(Math.max(0, maxY), world.getMaxHeight());
|
|
||||||
|
|
||||||
// Create and set up new selector
|
|
||||||
Polygonal2DRegionSelector sel = new Polygonal2DRegionSelector(lWorld, points, minY, maxY);
|
|
||||||
|
|
||||||
// set up CuboidSelection
|
|
||||||
poly2d = sel.getIncompleteRegion();
|
|
||||||
|
|
||||||
// set up RegionSelection
|
|
||||||
setRegionSelector(sel);
|
|
||||||
setRegion(poly2d);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<BlockVector2D> getNativePoints() {
|
|
||||||
return Collections.unmodifiableList(poly2d.getPoints());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,118 +0,0 @@
|
|||||||
/*
|
|
||||||
* WorldEdit, a Minecraft world manipulation toolkit
|
|
||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
|
||||||
* Copyright (C) WorldEdit team and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sk89q.worldedit.bukkit.selections;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.Vector;
|
|
||||||
import com.sk89q.worldedit.regions.Region;
|
|
||||||
import com.sk89q.worldedit.regions.RegionSelector;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
|
|
||||||
import static com.sk89q.worldedit.bukkit.BukkitUtil.toLocation;
|
|
||||||
import static com.sk89q.worldedit.bukkit.BukkitUtil.toVector;
|
|
||||||
|
|
||||||
public abstract class RegionSelection implements Selection {
|
|
||||||
|
|
||||||
private World world;
|
|
||||||
private RegionSelector selector;
|
|
||||||
private Region region;
|
|
||||||
|
|
||||||
public RegionSelection(World world) {
|
|
||||||
this.world = world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RegionSelection(World world, RegionSelector selector, Region region) {
|
|
||||||
this.world = world;
|
|
||||||
this.region = region;
|
|
||||||
this.selector = selector;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Region getRegion() {
|
|
||||||
return region;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setRegion(Region region) {
|
|
||||||
this.region = region;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RegionSelector getRegionSelector() {
|
|
||||||
return selector;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setRegionSelector(RegionSelector selector) {
|
|
||||||
this.selector = selector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Location getMinimumPoint() {
|
|
||||||
return toLocation(world, region.getMinimumPoint());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vector getNativeMinimumPoint() {
|
|
||||||
return region.getMinimumPoint();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Location getMaximumPoint() {
|
|
||||||
return toLocation(world, region.getMaximumPoint());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vector getNativeMaximumPoint() {
|
|
||||||
return region.getMaximumPoint();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public World getWorld() {
|
|
||||||
return world;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getArea() {
|
|
||||||
return region.getArea();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getWidth() {
|
|
||||||
return region.getWidth();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getHeight() {
|
|
||||||
return region.getHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getLength() {
|
|
||||||
return region.getLength();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean contains(Location position) {
|
|
||||||
if (!position.getWorld().equals(world)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return region.contains(toVector(position));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,113 +0,0 @@
|
|||||||
/*
|
|
||||||
* WorldEdit, a Minecraft world manipulation toolkit
|
|
||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
|
||||||
* Copyright (C) WorldEdit team and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sk89q.worldedit.bukkit.selections;
|
|
||||||
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
|
||||||
import com.sk89q.worldedit.regions.RegionSelector;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An abstraction of WorldEdit regions, which do not use Bukkit objects.
|
|
||||||
*/
|
|
||||||
public interface Selection {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the lower point of a region.
|
|
||||||
*
|
|
||||||
* @return min. point
|
|
||||||
*/
|
|
||||||
public Location getMinimumPoint();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the lower point of a region.
|
|
||||||
*
|
|
||||||
* @return min. point
|
|
||||||
*/
|
|
||||||
public Vector getNativeMinimumPoint();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the upper point of a region.
|
|
||||||
*
|
|
||||||
* @return max. point
|
|
||||||
*/
|
|
||||||
public Location getMaximumPoint();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the upper point of a region.
|
|
||||||
*
|
|
||||||
* @return max. point
|
|
||||||
*/
|
|
||||||
public Vector getNativeMaximumPoint();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the region selector. This is for internal use.
|
|
||||||
*
|
|
||||||
* @return the region selector
|
|
||||||
*/
|
|
||||||
public RegionSelector getRegionSelector();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the world.
|
|
||||||
*
|
|
||||||
* @return the world, which may be null
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
public World getWorld();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the number of blocks in the region.
|
|
||||||
*
|
|
||||||
* @return number of blocks
|
|
||||||
*/
|
|
||||||
public int getArea();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get X-size.
|
|
||||||
*
|
|
||||||
* @return width
|
|
||||||
*/
|
|
||||||
public int getWidth();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Y-size.
|
|
||||||
*
|
|
||||||
* @return height
|
|
||||||
*/
|
|
||||||
public int getHeight();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Z-size.
|
|
||||||
*
|
|
||||||
* @return length
|
|
||||||
*/
|
|
||||||
public int getLength();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true based on whether the region contains the point,
|
|
||||||
*
|
|
||||||
* @param position a vector
|
|
||||||
* @return true if it is contained
|
|
||||||
*/
|
|
||||||
public boolean contains(Location position);
|
|
||||||
|
|
||||||
}
|
|
@ -34,7 +34,7 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible {
|
|||||||
private boolean op;
|
private boolean op;
|
||||||
private UUID randomUuid = UUID.randomUUID();
|
private UUID randomUuid = UUID.randomUUID();
|
||||||
|
|
||||||
private final Map<String, Boolean> assignedPermissions = new HashMap<String, Boolean>();
|
private final Map<String, Boolean> assignedPermissions = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isOp() {
|
public boolean isOp() {
|
||||||
@ -101,7 +101,7 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
|
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
|
||||||
Set<PermissionAttachmentInfo> ret = new HashSet<PermissionAttachmentInfo>();
|
Set<PermissionAttachmentInfo> ret = new HashSet<>();
|
||||||
for (Map.Entry<String, Boolean> entry : assignedPermissions.entrySet()) {
|
for (Map.Entry<String, Boolean> entry : assignedPermissions.entrySet()) {
|
||||||
ret.add(new PermissionAttachmentInfo(this, entry.getKey(), null, entry.getValue()));
|
ret.add(new PermissionAttachmentInfo(this, entry.getKey(), null, entry.getValue()));
|
||||||
}
|
}
|
||||||
@ -141,11 +141,6 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible {
|
|||||||
throw new UnsupportedOperationException("Not supported yet.");
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setBanned(boolean b) {
|
|
||||||
throw new UnsupportedOperationException("Not supported yet.");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isWhitelisted() {
|
public boolean isWhitelisted() {
|
||||||
throw new UnsupportedOperationException("Not supported yet.");
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
@ -27,10 +27,9 @@ public class BukkitWorldTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTreeTypeMapping() {
|
public void testTreeTypeMapping() {
|
||||||
// TODO
|
for (TreeGenerator.TreeType type : TreeGenerator.TreeType.values()) {
|
||||||
// for (TreeGenerator.TreeType type : TreeGenerator.TreeType.values()) {
|
// Assert.assertNotNull("No mapping for: " + type, BukkitWorld.toBukkitTreeType(type)); // TODO
|
||||||
// Assert.assertFalse("No mapping for: " + type, BukkitWorld.toBukkitTreeType(type) == null);
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ import com.sk89q.worldedit.EditSession;
|
|||||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
import com.sk89q.worldedit.MaxChangedBlocksException;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
@ -30,6 +31,7 @@ import com.sk89q.worldedit.function.RegionFunction;
|
|||||||
import com.sk89q.worldedit.function.pattern.BlockPattern;
|
import com.sk89q.worldedit.function.pattern.BlockPattern;
|
||||||
import com.sk89q.worldedit.function.pattern.Pattern;
|
import com.sk89q.worldedit.function.pattern.Pattern;
|
||||||
import com.sk89q.worldedit.function.pattern.RandomPattern;
|
import com.sk89q.worldedit.function.pattern.RandomPattern;
|
||||||
|
import com.sun.xml.internal.bind.v2.TODO;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
@ -188,11 +190,7 @@ public class GardenPatchGenerator implements RegionFunction {
|
|||||||
* @return a pumpkin pattern
|
* @return a pumpkin pattern
|
||||||
*/
|
*/
|
||||||
public static Pattern getPumpkinPattern() {
|
public static Pattern getPumpkinPattern() {
|
||||||
RandomPattern pattern = new RandomPattern();
|
return new BlockPattern(BlockTypes.CARVED_PUMPKIN.getDefaultState());
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
// TODO pattern.add(new BlockPattern(new BaseBlock(BlockTypes.CARVED_PUMPKIN, i)), 100);
|
|
||||||
}
|
|
||||||
return pattern;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,7 +67,7 @@ public class ForgeWorldEdit {
|
|||||||
|
|
||||||
public static Logger logger;
|
public static Logger logger;
|
||||||
public static final String MOD_ID = "worldedit";
|
public static final String MOD_ID = "worldedit";
|
||||||
public static final String CUI_PLUGIN_CHANNEL = "WECUI";
|
public static final String CUI_PLUGIN_CHANNEL = "worldedit:cui";
|
||||||
|
|
||||||
private ForgePermissionsProvider provider;
|
private ForgePermissionsProvider provider;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import org.spongepowered.api.network.*;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
public class CUIChannelHandler implements RawDataListener {
|
public class CUIChannelHandler implements RawDataListener {
|
||||||
public static final String CUI_PLUGIN_CHANNEL = "WECUI";
|
public static final String CUI_PLUGIN_CHANNEL = "worldedit:cui";
|
||||||
|
|
||||||
private static ChannelBinding.RawDataChannel channel;
|
private static ChannelBinding.RawDataChannel channel;
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren