Moved from snow layers to entities
This commit is contained in:
parent
2ea3bf1866
commit
2da7a3182f
2 changed files with 222 additions and 138 deletions
|
@ -4,130 +4,214 @@ import java.io.IOException;
|
||||||
import java.net.DatagramPacket;
|
import java.net.DatagramPacket;
|
||||||
import java.net.DatagramSocket;
|
import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.material.MaterialData;
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.inventory.ItemFlag;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta.Spigot;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.scoreboard.Score;
|
||||||
|
|
||||||
public class PluginMain extends JavaPlugin {
|
public class PluginMain extends JavaPlugin
|
||||||
|
{
|
||||||
private Thread thread;
|
private Thread thread;
|
||||||
private boolean running = false;
|
private boolean running = false;
|
||||||
|
|
||||||
// Fired when plugin is first enabled
|
// Fired when plugin is first enabled
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable()
|
||||||
thread = new Thread() {
|
{
|
||||||
// Runnable runnable=new Runnable() {
|
System.out.println("Adding ArmorStands...");
|
||||||
public void run() {
|
Collection<ArmorStand> as = Bukkit.getWorlds().get(0)
|
||||||
|
.getEntitiesByClass(ArmorStand.class);
|
||||||
|
for (ArmorStand a : as)
|
||||||
|
{
|
||||||
|
Score score = Bukkit.getScoreboardManager().getMainScoreboard()
|
||||||
|
.getObjective("BarIDX")
|
||||||
|
.getScore(a.getUniqueId().toString());
|
||||||
|
if (!score.isScoreSet())
|
||||||
|
continue;
|
||||||
|
int x = score.getScore();
|
||||||
|
score = Bukkit.getScoreboardManager().getMainScoreboard()
|
||||||
|
.getObjective("BarIDY")
|
||||||
|
.getScore(a.getUniqueId().toString());
|
||||||
|
if (!score.isScoreSet())
|
||||||
|
continue;
|
||||||
|
int y = score.getScore();
|
||||||
|
ArmorStands.put(x + "-" + y, a);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < 8; j++)
|
||||||
|
{
|
||||||
|
if (!ArmorStands.containsKey(i + "-" + j))
|
||||||
|
{
|
||||||
|
ArmorStand a = (ArmorStand) Bukkit.getWorlds().get(0)
|
||||||
|
.spawnEntity(new Location(Bukkit.getWorlds().get(0),
|
||||||
|
129, 4, -600), EntityType.ARMOR_STAND);
|
||||||
|
ItemStack is = new ItemStack(Material.LEATHER_CHESTPLATE);
|
||||||
|
LeatherArmorMeta lam = (LeatherArmorMeta) is.getItemMeta();
|
||||||
|
lam.setColor(Color.RED);
|
||||||
|
is.setItemMeta(lam);
|
||||||
|
a.setChestplate(is);
|
||||||
|
ArmorStands.put(i + "-" + j, a);
|
||||||
|
Score score = Bukkit.getScoreboardManager()
|
||||||
|
.getMainScoreboard().getObjective("BarIDX")
|
||||||
|
.getScore(a.getUniqueId().toString());
|
||||||
|
score.setScore(i);
|
||||||
|
score = Bukkit.getScoreboardManager().getMainScoreboard()
|
||||||
|
.getObjective("BarIDY")
|
||||||
|
.getScore(a.getUniqueId().toString());
|
||||||
|
score.setScore(j);
|
||||||
|
System.out.println("Created armor stand " + i + "-" + j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Done!");
|
||||||
|
thread = new Thread()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
PluginMain.this.run(5896);
|
PluginMain.this.run(5896);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
running = true;
|
running = true;
|
||||||
thread.start();
|
thread.start();
|
||||||
// runnable.run();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fired when plugin is disabled
|
// Fired when plugin is disabled
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable()
|
||||||
|
{
|
||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private volatile Player player;
|
|
||||||
private volatile int moveup;
|
private volatile int moveup;
|
||||||
private volatile byte[] packet;
|
private volatile byte[] packet;
|
||||||
private volatile boolean runningtask;
|
private volatile boolean runningtask;
|
||||||
|
private volatile HashMap<String, ArmorStand> ArmorStands = new HashMap<String, ArmorStand>();
|
||||||
|
|
||||||
public void run(int port) {
|
public void run(int port)
|
||||||
|
{
|
||||||
DatagramSocket serverSocket = null;
|
DatagramSocket serverSocket = null;
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
serverSocket = new DatagramSocket(port);
|
serverSocket = new DatagramSocket(port);
|
||||||
byte[] receiveData = new byte[8];
|
byte[] receiveData = new byte[8];
|
||||||
|
|
||||||
System.out.printf("Listening on udp:%s:%d%n", InetAddress
|
System.out.printf("Listening on udp:%s:%d%n",
|
||||||
.getLocalHost().getHostAddress(), port);
|
InetAddress.getLocalHost().getHostAddress(), port);
|
||||||
DatagramPacket receivePacket = new DatagramPacket(receiveData,
|
DatagramPacket receivePacket = new DatagramPacket(receiveData,
|
||||||
receiveData.length);
|
receiveData.length);
|
||||||
|
|
||||||
while (running) {
|
while (running)
|
||||||
|
{
|
||||||
serverSocket.receive(receivePacket);
|
serverSocket.receive(receivePacket);
|
||||||
packet = receivePacket.getData();
|
packet = receivePacket.getData();
|
||||||
player = null;
|
|
||||||
try {
|
|
||||||
player = Bukkit.getPlayer("NorbiPeti");
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* getServer().dispatchCommand( getServer().getConsoleSender(),
|
|
||||||
* String.format("scoreboard players set t%d tracks %d",
|
|
||||||
* packet[0], Byte.toUnsignedInt(packet[1]))); //TODO: Teljesen
|
|
||||||
* szerveroldali legyen
|
|
||||||
*/
|
|
||||||
if (player == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
moveup = 0;
|
moveup = 0;
|
||||||
// System.out.println("Packet[1]: " + packet[1]);
|
Runnable runnable = new Runnable()
|
||||||
Runnable runnable = new Runnable() {
|
{
|
||||||
public void run() {
|
public void run()
|
||||||
while (true) {
|
{
|
||||||
if (player == null) {
|
while (true)
|
||||||
System.out.println("Player is null");
|
{
|
||||||
return;
|
/*
|
||||||
}
|
* Block block =
|
||||||
Block block = player.getWorld().getBlockAt(
|
* Bukkit.getWorlds().get(0).getBlockAt(
|
||||||
// 129 - packet[0], 56 + moveup, -654);
|
* 129 - packet[0], 56 + moveup, -600);
|
||||||
129 - packet[0], 56 + moveup, -600);
|
*/
|
||||||
if (Byte.toUnsignedInt(packet[1]) - moveup * 8 > 8) {
|
ArmorStand as = ArmorStands.get(packet[0] + "-"
|
||||||
block.setType(Material.SNOW_BLOCK);
|
+ (Byte.toUnsignedInt(packet[1]) % 8));
|
||||||
block.getState().setData(
|
/*
|
||||||
new MaterialData(Material.SNOW_BLOCK,
|
* System.out.println("packet[0]: " + packet[0]);
|
||||||
(byte) 0));
|
* //TODO: TMP
|
||||||
} else {
|
* System.out.println("packet[1]: " + packet[1]);
|
||||||
block.setType(Material.SNOW);
|
* //TODO: TMP
|
||||||
|
* System.out.println("get: " + packet[0] + "-"
|
||||||
|
* + (Byte.toUnsignedInt(packet[1]) % 8)); //TODO:
|
||||||
|
* TMP
|
||||||
|
* System.out.println("as: " + as); //TODO: TMP
|
||||||
|
*/
|
||||||
|
if (as == null)
|
||||||
|
break;
|
||||||
|
if (Byte.toUnsignedInt(packet[1]) - moveup * 8 > 8)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* MaterialData data = new MaterialData(
|
* block.setType(Material.SNOW_BLOCK);
|
||||||
* Material.SNOW); data.setData((byte) (Byte
|
* block.getState().setData(new MaterialData(
|
||||||
* .toUnsignedInt(packet[1]) - moveup * 8));
|
* Material.SNOW_BLOCK, (byte) 0));
|
||||||
*/
|
*/
|
||||||
|
System.out.println("A: " + new Location(
|
||||||
|
as.getWorld(), 129 - packet[0],
|
||||||
|
4 + moveup, -600));
|
||||||
|
as.teleport(new Location(as.getWorld(),
|
||||||
|
129 - packet[0], 4 + moveup, -600));
|
||||||
|
//TODO: Change armor color
|
||||||
|
} else
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* player.sendMessage("Data: " + (byte)
|
* block.setType(Material.SNOW);
|
||||||
* (Byte.toUnsignedInt(packet[1]) - moveup *
|
* block.setData(
|
||||||
* 8));
|
* (byte) (Byte.toUnsignedInt(packet[1])
|
||||||
|
* - moveup * 8));
|
||||||
*/
|
*/
|
||||||
// block.getState().setData(data);
|
System.out.println("B: " + new Location(
|
||||||
// block.getState().update();
|
as.getWorld(), 129 - packet[0],
|
||||||
block.setData((byte) (Byte
|
4 + moveup
|
||||||
.toUnsignedInt(packet[1]) - moveup * 8));
|
+ (Byte.toUnsignedInt(packet[1])
|
||||||
|
- moveup * 8) * 0.1,
|
||||||
|
-600));
|
||||||
|
as.teleport(new Location(as.getWorld(),
|
||||||
|
129 - packet[0],
|
||||||
|
4 + moveup
|
||||||
|
+ (Byte.toUnsignedInt(packet[1])
|
||||||
|
- moveup * 8) * 0.1,
|
||||||
|
-600));
|
||||||
}
|
}
|
||||||
if (Byte.toUnsignedInt(packet[1]) - moveup * 8 > 8)
|
if (Byte.toUnsignedInt(packet[1]) - moveup * 8 > 8)
|
||||||
moveup += 1;
|
moveup += 1;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for (int i = 56 + moveup + 1; i < 56 + 255 / 8; i++) {
|
/*
|
||||||
Block block = player.getWorld().getBlockAt(
|
* for (int i = 56 + moveup + 1; i < 56 + 255 / 8; i++)
|
||||||
// 129 - packet[0], i, -654);
|
* {
|
||||||
129 - packet[0], i, -600);
|
* Block block = Bukkit.getWorlds().get(0)
|
||||||
block.setType(Material.AIR);
|
* .getBlockAt(129 - packet[0], i, -600);
|
||||||
}
|
* block.setType(Material.AIR);
|
||||||
|
* }
|
||||||
|
*/
|
||||||
runningtask = false;
|
runningtask = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
runningtask = true;
|
runningtask = true;
|
||||||
getServer().getScheduler().runTask(this, runnable);
|
getServer().getScheduler().runTask(this, runnable);
|
||||||
while (runningtask)
|
while (runningtask)
|
||||||
;
|
;
|
||||||
} catch (Exception e) {
|
} catch (Exception e)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e)
|
||||||
|
{
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally
|
||||||
|
{
|
||||||
serverSocket.close();
|
serverSocket.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue