@Override public void loadClips( CityWorldGenerator generator, SchematicFamily family, ClipboardList clips, int maxX, int maxZ) throws Exception { // things aren't happy if (schematicsFolder != null) { // now for each of the context styles File contextFolder = findFolder(schematicsFolder, family.toString()); // now load those schematic files File[] schematicFiles = contextFolder.listFiles(matchSchematics()); if (schematicFiles != null) { for (File schematicFile : schematicFiles) { try { // load a clipboard Clipboard clip = new Clipboard_WorldEdit(generator, schematicFile); // too big? if (clip.chunkX > maxX || clip.chunkZ > maxZ) { generator.reportMessage( "[WorldEdit] Schematic " + schematicFile.getName() + " too large, max size = " + maxX * SupportBlocks.sectionBlockWidth + " by " + maxZ * SupportBlocks.sectionBlockWidth + " it is = " + clip.sizeX + " by " + clip.sizeZ + ", skipped"); } else { // add the clip to the result clips.put(clip); } // generator.reportMessage("[WorldEdit] Schematic " + schematicFile.getName() + " // loaded"); } catch (Exception e) { generator.reportException( "[WorldEdit] Schematic " + schematicFile.getName() + " could NOT be loaded", e); } } } } }
// VERY Loosely based on work contributed by drew-bahrue // (https://github.com/echurchill/CityWorld/pull/2) public static PasteProvider loadWorldEdit(CityWorldGenerator generator) { // return null; WorldEditPlugin worldEditPlugin = null; try { PluginManager pm = Bukkit.getServer().getPluginManager(); if (pm != null) { Plugin plugin = pm.getPlugin(pluginName); if (plugin != null) worldEditPlugin = (WorldEditPlugin) plugin; } if (worldEditPlugin == null) { generator.reportMessage("[PasteProvider] Problem loading WorldEdit, could not find it"); return null; } // got the right version? if (!isPlugInVersionOrBetter(generator, worldEditPlugin, pluginMinVersion)) // Use it anyway? if (generator.settings.forceLoadWorldEdit) { generator.reportMessage( "'" + CityWorldSettings.tagForceLoadWorldEdit + "' setting enabled!"); // Well that didn't work... let's tell the user about a potential workaround } else { generator.reportMessage( "[PasteProvider] Cannot use the installed WorldEdit. ", "See the '" + CityWorldSettings.tagForceLoadWorldEdit + "' setting for possible workaround."); return null; } // make sure it is enabled if (!pm.isPluginEnabled(worldEditPlugin)) pm.enablePlugin(worldEditPlugin); // woot! generator.reportMessage( "[PasteProvider] Found WorldEdit v" + worldEditPlugin.getDescription().getVersion() + ", enabling its schematics"); return new PasteProvider_WorldEdit(generator); } catch (Exception e) { generator.reportMessage("[PasteProvider] Problem loading WorldEdit (" + e.getMessage() + ")"); return null; } }
@Override public void reportStatus(CityWorldGenerator generator) { generator.reportMessage( "[WorldEdit] Loaded " + schematicsLoaded + " schematic(s) for world " + generator.worldName); }
public PasteProvider_WorldEdit(CityWorldGenerator generator) throws Exception { super(); // find the files File pluginFolder = generator.getPlugin().getDataFolder(); if (pluginFolder.isDirectory()) { // forget all those shape and ore type and just go for the world name schematicsFolder = findFolder(pluginFolder, "Schematics for " + generator.worldName); // // shape folder (normal, floating, etc.) // File shapeFolder = findFolder(pluginFolder, generator.shapeProvider.getCollectionName()); // // // finally ores are used to figure out the collection folder (normal, nether, theend, // etc.) // schematicsFolder = findFolder(shapeFolder, generator.oreProvider.getCollectionName()); } }