Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Proszę o przerobienie kodu - plugin na czas.


gabrys07076

Rekomendowane odpowiedzi

Opublikowano

Witam, przerobicie mi Kod/Klase tego pluginu żeby była teleportacja po 10 sekundach a jeśli porszę się (NIE MYSZKĄ) to anuluje TP? Zróbcie ten czas na komende /tpa/tpaccept i /home

 

KOD:

package pl.gaben.addons;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;

public class Main
  extends JavaPlugin
  implements Listener
{
  public List<Player> players = new ArrayList();
  public List<Player> tpa = new ArrayList();
  public HashMap<Player, Player> getLastReceiverBySender = new HashMap();
  public HashMap<Player, Player> getLastSenderByReceiver = new HashMap();
  public HashMap<Player, Long> lastSenderRequestTime = new HashMap();
  
  public void sentRequest(Player sender, Player receiver)
  {
    this.getLastReceiverBySender.put(sender, receiver);
    this.getLastSenderByReceiver.put(receiver, sender);
    this.lastSenderRequestTime.put(sender, 
      Long.valueOf(System.currentTimeMillis()));
  }
  
  public void acceptRequest(Player sender, Player receiver)
  {
    this.getLastReceiverBySender.remove(sender);
    this.getLastSenderByReceiver.remove(receiver);
    this.lastSenderRequestTime.remove(sender);
  }
  
  public void denyRequest(Player sender, Player receiver)
  {
    this.getLastReceiverBySender.remove(sender);
    this.getLastSenderByReceiver.remove(receiver);
    this.lastSenderRequestTime.remove(sender);
  }
  
  public void onEnable()
  {
    createFolders();
    Bukkit.getPluginManager().registerEvents(this, this);
  }
  
  public void createFolders()
  {
    File mainFolder = new File(getDataFolder(), null);
    if (!mainFolder.exists()) {
      mainFolder.mkdir();
    }
  }
  
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  {
    if ((sender instanceof Player))
    {
      final Player p = (Player)sender;
      if (cmd.getName().equalsIgnoreCase("tpa")) {
        if (p.hasPermission("tools.tpa"))
        {
          if (args.length > 0)
          {
            Player other = Bukkit.getPlayer(args[0]);
            if (other != null)
            {
              sentRequest(
                p, other);
              p.sendMessage(ChatColor.GREEN + "Wyslano prosbe o teleportacje do gracza " + other.getName() + "!");
              other.sendMessage(ChatColor.GREEN + p.getDisplayName() + 
                ChatColor.GREEN + 
                " chce sie przeteleportowac do ciebie.");
              other.sendMessage(ChatColor.GREEN + "Wpisz " + 
                ChatColor.GREEN + "/tpaccept" + 
                ", aby zaakceptowac.");
              other.sendMessage(ChatColor.GREEN + "Wpisz /tpdeny" + 
                ", aby odrzucic.");
            }
            else
            {
              sender.sendMessage(ChatColor.DARK_RED + 
                "Podany gracz nie jest online!");
            }
          }
          else
          {
            p.sendMessage(ChatColor.RED + "Poprawne uzycie: /tpa <gracz>");
          }
        }
        else
        {
          p.sendMessage(ChatColor.RED + 
            "Nie masz uprawnien. (tools.tpa)");
          return true;
        }
      }
      if (cmd.getName().equalsIgnoreCase("tpaccept")) {
        if (this.getLastSenderByReceiver.get(p) != null)
        {
          final Player other = 
            (Player)this.getLastSenderByReceiver.get(p);
          if (other != null)
          {
            if ((System.currentTimeMillis() - ((Long)this.lastSenderRequestTime.get(other)).longValue()) / 1000L <= 60L)
            {
              acceptRequest(other, p);
              other.sendMessage(ChatColor.GREEN + 
                p.getName() + 
                " zaakceptowal twoja prosbe o teleportacje!");
              other.sendMessage(ChatColor.GREEN + 
                "Teleport rozgrzewa sie...");
              p.sendMessage(ChatColor.GREEN + 
                "Zaakceptowales prosbe o teleportacje gracza " + 
                other.getDisplayName());
              
              this.tpa.add(other);
              
              Bukkit.getScheduler().scheduleSyncDelayedTask(this, 
                new Runnable()
                {
                  public void run()
                  {
                    if (Main.this.tpa.contains(other))
                    {
                      other.teleport(p.getLocation());
                      Main.this.tpa.remove(other);
                    }
                  }
                }, 200L);
            }
            else
            {
              p.sendMessage(ChatColor.RED + 
                "Nie masz oczekujacej prosby o teleportacje!");
              denyRequest(other, p);
            }
          }
          else
          {
            p.sendMessage(ChatColor.RED + 
              "Nie masz oczekujacej prosby o teleportacje!");
            denyRequest(other, p);
          }
        }
        else
        {
          p.sendMessage(ChatColor.RED + 
            "Nie masz oczekujacej prosby o teleportacje!");
        }
      }
      if (cmd.getName().equalsIgnoreCase("tpdeny")) {
        if (this.getLastSenderByReceiver.get(p) != null)
        {
          Player other = (Player)this.getLastSenderByReceiver.get(p);
          if (other != null)
          {
            if ((System.currentTimeMillis() - ((Long)this.lastSenderRequestTime.get(other)).longValue()) / 1000L <= 60L)
            {
              denyRequest(other, p);
              other.sendMessage(ChatColor.RED + "Gracz " + 
                p.getName() + 
                " odrzucil twoja prosbe o teleportacje!");
              p.sendMessage(ChatColor.GOLD + 
                "Odrzuciles prosbe o teleportacje gracza " + 
                ChatColor.RED + other.getDisplayName());
              p.sendMessage(ChatColor.RED + 
                "Odrzuciles prosbe o teleportacje gracza " + 
                other.getName() + "!");
            }
            else
            {
              p.sendMessage(ChatColor.RED + 
                "Nie masz oczekujacej prosby o teleportacje!");
              denyRequest(other, p);
            }
          }
          else
          {
            p.sendMessage(ChatColor.RED + 
              "Nie masz oczekujacej prosby o teleportacje!");
            denyRequest(other, p);
          }
        }
        else
        {
          p.sendMessage(ChatColor.RED + 
            "Nie masz oczekujacej prosby o teleportacje!");
        }
      }
      if (cmd.getName().equalsIgnoreCase("home")) {
        if (p.hasPermission("tools.home"))
        {
          final HomeCommand playerHome = new HomeCommand(p.getName());
          if (playerHome.hasHome())
          {
            if (!this.players.contains(p))
            {
              p.sendMessage(ChatColor.GREEN + 
                "Za 10 sekund zostaniesz przeteleportowany do domu!");
              this.players.add(p);
              
              Bukkit.getScheduler().scheduleSyncDelayedTask(this, 
                new Runnable()
                {
                  public void run()
                  {
                    if (Main.this.players.contains(p))
                    {
                      p.teleport(playerHome
                        .getHomeLocation());
                      p.sendMessage("§8» §7Zostales przeteleportowany do domu!");
                      Main.this.players.remove(p);
                    }
                  }
                }, 200L);
            }
            else
            {
              p.sendMessage(ChatColor.RED + 
                "Jestes w trakcie teleportacji do domu!");
              return true;
            }
          }
          else
          {
            p.sendMessage(ChatColor.RED + 
              "Musisz najpierw ustawic dom!");
            return true;
          }
        }
        else
        {
          p.sendMessage(ChatColor.RED + 
            "Nie masz uprawnien. (tools.home)");
          return true;
        }
      }
      if (cmd.getName().equalsIgnoreCase("sethome"))
      {
        if (p.hasPermission("tools.sethome"))
        {
          HomeCommand playerHome = new HomeCommand(p.getName());
          
          playerHome.setHome(p.getLocation());
          
          p.sendMessage(ChatColor.GREEN + "Pomyslnie ustawiles dom!");
          return true;
        }
        p.sendMessage(ChatColor.RED + 
          "Nie masz uprawnien. (tools.sethome)");
        return true;
      }
    }
    return false;
  }
  
  @EventHandler
  public void onPlayerMove(PlayerMoveEvent event)
  {
    Location from = event.getFrom();
    Location to = event.getTo();
    if ((from.getBlockX() != to.getBlockX()) || 
      (from.getBlockY() != to.getBlockY()) || 
      (from.getBlockZ() != to.getBlockZ()) || 
      (from.getWorld() != to.getWorld()))
    {
      Player player = event.getPlayer();
      if (this.tpa.contains(player))
      {
        this.players.remove(player);
        player.sendMessage(ChatColor.DARK_RED + 
          "Teleportacja zostala anulowana!");
      }
      if (this.players.contains(player))
      {
        this.players.remove(player);
        player.sendMessage(ChatColor.DARK_RED + 
          "Teleportacja zostala anulowana!");
      }
    }
  }
}

Opublikowano

­Spróbuj tym;

        getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
            @Override
            public void run() {
                <tutaj kod na teleport>
            }
        }, 20 * 10 (10 to czas w sekundach));

 

sygnatura.png

Opublikowano

 

­Spróbuj tym;

        getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
            @Override
            public void run() {
                <tutaj kod na teleport>
            }
        }, 20 * 10 (10 to czas w sekundach));

Nie działa.

Opublikowano

@up: Musi działać, pokaż nowy kod

 

Serio nie masz Essentials żeby sobie to zrobić?

Nie mam essentials, BO ROBIE TOOLSY GZ :) Dałem kod do pluginu.

  • 3 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...