Just resit player every 1150 ticks, that solves this problem.
Finally!!!! This is done.
This commit is contained in:
parent
96b169b7cc
commit
f5781022b4
@ -20,6 +20,7 @@ import org.bukkit.permissions.Permission;
|
|||||||
import org.bukkit.permissions.PermissionDefault;
|
import org.bukkit.permissions.PermissionDefault;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import com.comphenix.protocol.ProtocolLibrary;
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
import com.comphenix.protocol.ProtocolManager;
|
import com.comphenix.protocol.ProtocolManager;
|
||||||
@ -111,6 +112,16 @@ public class Chairs extends JavaPlugin {
|
|||||||
protected HashMap<Block, String> sitblock = new HashMap<Block, String>();
|
protected HashMap<Block, String> sitblock = new HashMap<Block, String>();
|
||||||
protected HashMap<String, Block> sitblockbr = new HashMap<String, Block>();
|
protected HashMap<String, Block> sitblockbr = new HashMap<String, Block>();
|
||||||
protected HashMap<String, Location> sitstopteleportloc = new HashMap<String, Location>();
|
protected HashMap<String, Location> sitstopteleportloc = new HashMap<String, Location>();
|
||||||
|
protected HashMap<String, Integer> sittask = new HashMap<String, Integer>();
|
||||||
|
protected void reSitPlayer(final Player player)
|
||||||
|
{
|
||||||
|
player.eject();
|
||||||
|
sit.get(player.getName()).remove();
|
||||||
|
Block block = sitblockbr.get(player.getName());
|
||||||
|
Entity arrow = block.getWorld().spawnArrow(block.getLocation().add(0.5, 0, 0.5), new Vector(0, 0, 0), 0, 0);
|
||||||
|
arrow.setPassenger(player);
|
||||||
|
sit.put(player.getName(), arrow);
|
||||||
|
}
|
||||||
protected void ejectPlayer(final Player player)
|
protected void ejectPlayer(final Player player)
|
||||||
{
|
{
|
||||||
player.eject();
|
player.eject();
|
||||||
@ -126,6 +137,11 @@ public class Chairs extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
unSit(player);
|
unSit(player);
|
||||||
}
|
}
|
||||||
|
private void ejectPlayerOnDisable(Player player)
|
||||||
|
{
|
||||||
|
player.eject();
|
||||||
|
unSit(player);
|
||||||
|
}
|
||||||
protected void unSit(Player player) {
|
protected void unSit(Player player) {
|
||||||
if (sit.containsKey(player.getName()))
|
if (sit.containsKey(player.getName()))
|
||||||
{
|
{
|
||||||
@ -134,20 +150,13 @@ public class Chairs extends JavaPlugin {
|
|||||||
sitblockbr.remove(player.getName());
|
sitblockbr.remove(player.getName());
|
||||||
sitstopteleportloc.remove(player.getName());
|
sitstopteleportloc.remove(player.getName());
|
||||||
sit.remove(player.getName());
|
sit.remove(player.getName());
|
||||||
|
Bukkit.getScheduler().cancelTask(sittask.get(player.getName()));
|
||||||
|
sittask.remove(player.getName());
|
||||||
if (notifyplayer && !msgStanding.isEmpty()) {
|
if (notifyplayer && !msgStanding.isEmpty()) {
|
||||||
player.sendMessage(msgStanding);
|
player.sendMessage(msgStanding);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void ejectPlayerOnDisable(Player player)
|
|
||||||
{
|
|
||||||
player.eject();
|
|
||||||
sit.get(player.getName()).remove();
|
|
||||||
sitblock.remove(sitblockbr.get(player.getName()));
|
|
||||||
sitblockbr.remove(player.getName());
|
|
||||||
sitstopteleportloc.remove(player.getName());
|
|
||||||
sit.remove(player.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void loadConfig() {
|
public void loadConfig() {
|
||||||
|
@ -282,10 +282,24 @@ public class EventListener implements Listener {
|
|||||||
plugin.sit.put(player.getName(), arrow);
|
plugin.sit.put(player.getName(), arrow);
|
||||||
plugin.sitblock.put(block, player.getName());
|
plugin.sitblock.put(block, player.getName());
|
||||||
plugin.sitblockbr.put(player.getName(), block);
|
plugin.sitblockbr.put(player.getName(), block);
|
||||||
|
startReSitTask(player);
|
||||||
sit = true;
|
sit = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void startReSitTask(final Player player)
|
||||||
|
{
|
||||||
|
int task =
|
||||||
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
plugin.reSitPlayer(player);
|
||||||
|
}
|
||||||
|
},1150,1150);
|
||||||
|
plugin.sittask.put(player.getName(), task);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// https://github.com/sk89q/craftbook/blob/master/src/main/java/com/sk89q/craftbook/util/BlockUtil.java
|
// https://github.com/sk89q/craftbook/blob/master/src/main/java/com/sk89q/craftbook/util/BlockUtil.java
|
||||||
public static Location getBlockCentre(Block block) {
|
public static Location getBlockCentre(Block block) {
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user