mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-26 12:45:52 +01:00
97 lines
3.6 KiB
Diff
97 lines
3.6 KiB
Diff
From 31cb3fb75f9332dde2700d728778fb85a4db65ef Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 8 Jun 2015 23:55:20 -0400
|
|
Subject: [PATCH] EMC SendSignEvent
|
|
|
|
---
|
|
.../api/SendSignEventImpl.java | 42 +++++++++++++++++++
|
|
.../net/minecraft/server/TileEntitySign.java | 13 +++++-
|
|
2 files changed, 53 insertions(+), 2 deletions(-)
|
|
create mode 100644 src/main/java/com/empireminecraft/api/SendSignEventImpl.java
|
|
|
|
diff --git a/src/main/java/com/empireminecraft/api/SendSignEventImpl.java b/src/main/java/com/empireminecraft/api/SendSignEventImpl.java
|
|
new file mode 100644
|
|
index 00000000..9f3cb62f
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/empireminecraft/api/SendSignEventImpl.java
|
|
@@ -0,0 +1,42 @@
|
|
+package com.empireminecraft.api;
|
|
+
|
|
+import com.empireminecraft.customevents.SendSignEvent;
|
|
+import net.minecraft.server.BlockPosition;
|
|
+import net.minecraft.server.ChatComponentText;
|
|
+import net.minecraft.server.IChatBaseComponent;
|
|
+import net.minecraft.server.World;
|
|
+import org.bukkit.block.Block;
|
|
+import org.bukkit.craftbukkit.util.CraftChatMessage;
|
|
+import org.bukkit.event.Event;
|
|
+import org.bukkit.event.HandlerList;
|
|
+
|
|
+public class SendSignEventImpl extends SendSignEvent {
|
|
+ public final IChatBaseComponent[] lines;
|
|
+ private final String[] slines;
|
|
+ private final Block block;
|
|
+
|
|
+ public SendSignEventImpl(World world, BlockPosition position, IChatBaseComponent[] lines) {
|
|
+ this.block = world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ());
|
|
+ this.lines = new IChatBaseComponent[lines.length];
|
|
+ this.slines = new String[lines.length];
|
|
+ for (int i = 0; i < lines.length; i++) {
|
|
+ this.lines[i] = lines[i];
|
|
+ slines[i] = CraftChatMessage.fromComponent(lines[i]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Block getBlock() {
|
|
+ return block;
|
|
+ }
|
|
+
|
|
+ public String[] getLines() {
|
|
+ return slines;
|
|
+ }
|
|
+ public void setLine(int i, String line) {
|
|
+ slines[i] = line;
|
|
+ lines[i] = new ChatComponentText("");
|
|
+ for (IChatBaseComponent comp : CraftChatMessage.fromString(line)) {
|
|
+ lines[i].addSibling(comp);
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
index 0e9a90b7..6323fe55 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
@@ -20,10 +20,15 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
|
|
|
@Override
|
|
public NBTTagCompound save(NBTTagCompound nbttagcompound) {
|
|
+ // EMC start
|
|
+ return save(nbttagcompound, this.lines);
|
|
+ }
|
|
+ public NBTTagCompound save(NBTTagCompound nbttagcompound, IChatBaseComponent[] lines) {
|
|
+ // EMC end
|
|
super.save(nbttagcompound);
|
|
|
|
for (int i = 0; i < 4; ++i) {
|
|
- String s = IChatBaseComponent.ChatSerializer.a(this.lines[i]);
|
|
+ String s = IChatBaseComponent.ChatSerializer.a(lines[i]); // EMC
|
|
|
|
nbttagcompound.setString("Text" + (i + 1), s);
|
|
}
|
|
@@ -97,7 +102,11 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
|
|
|
@Override
|
|
public NBTTagCompound b() {
|
|
- return this.save(new NBTTagCompound());
|
|
+ // EMC start
|
|
+ com.empireminecraft.api.SendSignEventImpl event = new com.empireminecraft.api.SendSignEventImpl(this.world, this.getPosition(), this.lines);
|
|
+ event.callEvent();
|
|
+ return this.save(new NBTTagCompound(), event.lines);
|
|
+ // EMC end
|
|
}
|
|
|
|
@Override
|
|
--
|
|
2.25.1.windows.1
|
|
|