Skip to content

Instantly share code, notes, and snippets.

@Densyakun
Last active February 11, 2018 10:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Densyakun/6071307d984fc004e9c816fa254efcf1 to your computer and use it in GitHub Desktop.
Save Densyakun/6071307d984fc004e9c816fa254efcf1 to your computer and use it in GitHub Desktop.
[BukkitPlugin]自動都市生成・生活プラグイン「MineCity」(開発断念)
package io.github.densyakun.bukkit.minecity;
import java.util.LinkedList;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_8_R3.StructurePiece;
import net.minecraft.server.v1_8_R3.WorldGenVillage.WorldGenVillageStart;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
CraftPlayer p = (CraftPlayer) sender;
CraftWorld w = (CraftWorld) p.getWorld();
/*PersistentVillage pb = w.getHandle().ae();
pb.getClosestVillage(p.getHandle().bx, 0);
List<Village> villages = pb.getVillages();
String v_str = "";
for (int a = 0; a < villages.size(); a++) {
if (a != 0) {
v_str += ", ";
}
BlockPosition bp = villages.get(a).a();
v_str += "{" + bp.getX() + ", " + bp.getY() + ", " + bp.getZ() + "}";
}
sender.sendMessage("villages: " + v_str);*/
/*
WorldGenVillage wgv = new WorldGenVillage();
BlockPosition pos = new BlockPosition(p.getHandle());
sender.sendMessage("a: " + wgv.a(w.getHandle(), pos)); //村の敷地内か
sender.sendMessage("b: " + wgv.b(pos)); //村の建造物の範囲内か
sender.sendMessage("getNearestGeneratedFeature: " + wgv.getNearestGeneratedFeature(w.getHandle(), pos)); //一番近い村の井戸
*/
try {
int i = Integer.valueOf(args[0]);
int j = Integer.valueOf(args[1]);
int k = Integer.valueOf(args[2]);
WorldGenVillageStart vs = new WorldGenVillageStart(w.getHandle(), w.getHandle().random, i, j, k);
//sender.sendMessage("a: " + vs.a()); //井戸の範囲
LinkedList<StructurePiece> b = vs.b();
String str_a = "";
String str_b = "";
String str_c = "";
String str_d = "";
for (int n = 0; n < b.size(); n++) {
if (n != 0) {
str_a += ", ";
str_b += ", ";
str_c += ", ";
str_d += ", ";
}
StructurePiece s = b.get(n);
str_a += s.a();
str_b += s.b();
str_c += s.c();
str_d += s.d();
}
sender.sendMessage("b.a: " + str_a);
sender.sendMessage("b.b: " + str_b);
sender.sendMessage("b.c: " + str_c);
sender.sendMessage("b.d: " + str_d);
sender.sendMessage("d: " + vs.d());
//sender.sendMessage("e: " + vs.e()); //ChunkXを返す
//sender.sendMessage("f: " + vs.f()); //ChunkZを返す
} catch (ArrayIndexOutOfBoundsException | NumberFormatException e) {
sender.sendMessage("/" + label + "ChunkX, ChunkZ, Y");
}
}
return true;
}
@Override
public void onDisable() {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment