Only check damage values for non stairs.

This commit is contained in:
cnaude 2013-07-07 22:38:51 -07:00
parent b3e9003c35
commit e1d69b75d0
7 changed files with 47 additions and 16 deletions

View File

@ -42,7 +42,7 @@ public class ChairEffects {
double pHealthPcnt = (double) p.getHealth() / (double) p.getMaxHealth() * 100d;
if ((pHealthPcnt < plugin.sitMaxHealth)
&& (p.getHealth() < p.getMaxHealth())) {
double newHealth = plugin.sitHealthPerInterval + p.getHealth();
int newHealth = plugin.sitHealthPerInterval + p.getHealth();
if (newHealth > p.getMaxHealth()) {
newHealth = p.getMaxHealth();
}

View File

@ -5,8 +5,8 @@
package com.cnaude.chairs;
import java.util.ArrayList;
import net.minecraft.server.v1_6_R1.DataWatcher;
import net.minecraft.server.v1_6_R1.WatchableObject;
import net.minecraft.server.v1_5_R3.DataWatcher;
import net.minecraft.server.v1_5_R3.WatchableObject;
/**
*
@ -24,6 +24,7 @@ public class ChairWatcher extends DataWatcher {
public ArrayList<WatchableObject> b() {
ArrayList<WatchableObject> list = new ArrayList<WatchableObject>();
WatchableObject wo = new WatchableObject(0, 0, Byte.valueOf(this.metadata));
//WatchableObject wo = new WatchableObject(0, 0, 4);
list.add(wo);
return list;
}

View File

@ -10,12 +10,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.server.v1_6_R1.Packet40EntityMetadata;
import net.minecraft.server.v1_5_R3.Packet40EntityMetadata;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_6_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.permissions.Permission;
@ -39,6 +39,7 @@ public class Chairs extends JavaPlugin {
private File pluginFolder;
private File configFile;
public byte metadata;
public int packet;
public HashMap<String, Location> sit = new HashMap<String, Location>();
public static final String PLUGIN_NAME = "Chairs";
public static final String LOG_HEADER = "[" + PLUGIN_NAME + "]";
@ -119,7 +120,9 @@ public class Chairs extends JavaPlugin {
return (getServer().getPluginManager().getPlugin("ProtocolLib") != null);
}
public void loadConfig() {
public void loadConfig() {
packet = getConfig().getInt("packet");
logInfo("Sitting packet byte: " + packet);
autoRotate = getConfig().getBoolean("auto-rotate");
sneaking = getConfig().getBoolean("sneaking");
signCheck = getConfig().getBoolean("sign-check");
@ -156,7 +159,7 @@ public class Chairs extends JavaPlugin {
String d = "0";
if (s.contains(":")) {
String tmp[] = s.split(":",3);
type = tmp[0];
type = tmp[0];
if (!tmp[1].isEmpty()) {
sh = Double.parseDouble(tmp[1]);
}
@ -173,7 +176,7 @@ public class Chairs extends JavaPlugin {
} else {
mat = Material.matchMaterial(type);
}
if (mat != null) {
if (mat != null) {
logInfo("Allowed block: " + mat.toString() + " => " + sh + " => " + d);
allowedBlocks.add(new ChairBlock(mat,sh,d));
} else {
@ -225,7 +228,7 @@ public class Chairs extends JavaPlugin {
PacketContainer fakeSit = protocolManager.createPacket(40);
fakeSit.getSpecificModifier(int.class).write(0, p.getEntityId());
WrappedDataWatcher watcher = new WrappedDataWatcher();
watcher.setObject(0, (byte)4);
watcher.setObject(0, (byte)packet);
fakeSit.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects());
return fakeSit;
}
@ -243,9 +246,17 @@ public class Chairs extends JavaPlugin {
public void sendSit(Player p) {
if (protocolManager != null) {
sendPacketToPlayers(getSitPacket(p),p);
} else {
Packet40EntityMetadata packet = new Packet40EntityMetadata(p.getPlayer().getEntityId(), new ChairWatcher((byte) 4), false);
sendPacketToPlayers(packet,p);
} else {
sendPacketToPlayers(new Packet40EntityMetadata(p.getPlayer().getEntityId(), new ChairWatcher((byte) packet), false),p);
}
}
public void sendSit(Player p, int i) {
if (protocolManager != null) {
sendPacketToPlayers(getSitPacket(p),p);
} else {
p.sendMessage("sit: " + i);
sendPacketToPlayers(new Packet40EntityMetadata(p.getPlayer().getEntityId(), new ChairWatcher((byte) i), false),p);
}
}

View File

@ -68,6 +68,7 @@ public class ChairsCommand implements CommandExecutor {
}
}
}
plugin.sendSit(p,Integer.parseInt(args[0]));
}
return true;
}

View File

@ -35,6 +35,7 @@ public class EventListener implements Listener {
this.ignoreList = ignoreList;
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
Player player = event.getPlayer();
@ -148,12 +149,28 @@ public class EventListener implements Listener {
"Allow players to sit on a '" + block.getType().name() + "'",
PermissionDefault.FALSE));
}
if (plugin.pm.getPermission("chairs.sit." + block.getTypeId() + ":" + block.getData()) == null) {
plugin.pm.addPermission(new Permission("chairs.sit." + block.getTypeId() + ":" + block.getData(),
"Allow players to sit on a '" + block.getType().name() + "'",
PermissionDefault.FALSE));
}
if (plugin.pm.getPermission("chairs.sit." + block.getType().toString() + ":" + block.getData()) == null) {
plugin.pm.addPermission(new Permission("chairs.sit." + block.getType().toString() + ":" + block.getData(),
"Allow players to sit on a '" + block.getType().name() + "'",
PermissionDefault.FALSE));
}
}
for (ChairBlock cb : plugin.allowedBlocks) {
//plugin.logInfo("Comparing: (" + cb.getMat().name() + " ? " + block.getType().name() + ") ("
// + cb.getDamage() + " ? " + block.getData() + ")");
if (cb.getMat().equals(block.getType())
plugin.logInfo("Comparing: (" + cb.getMat().name() + " ? " + block.getType().name() + ") ("
+ cb.getDamage() + " ? " + block.getData() + ")");
if (cb.getMat().toString().contains("STAIRS")) {
if (cb.getMat().equals(block.getType())) {
blockOkay = true;
sh = cb.getSitHeight();
continue;
}
} else if (cb.getMat().equals(block.getType())
&& cb.getDamage() == block.getData()) {
blockOkay = true;
sh = cb.getSitHeight();

View File

@ -61,4 +61,5 @@ messages:
no-permission: '&cYou do not have permission to do this!'
enabled: '&7You have enabled chairs for yourself!'
disabled: '&7You have disabled chairs for yourself!'
packet: 4

View File

@ -1,5 +1,5 @@
name: Chairs
version: 2.1.5
version: 2.1.4a
description: Let players sit on blocks.
website: http://dev.bukkit.org/bukkit-plugins/chairsreloaded/
authors: