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

[Pytanie] Jak edytować pliki *.class?


Rekomendowane odpowiedzi

Opublikowano

Bezpośrednio nie da się zedytować pliku class musisz zdekompilować (ja używam JD-GUI) nasepnie kod ten skopiować, stworzyć nowy projekt w Eclipse, dodać API Bukkita (najlepiej najnowszego ;)), wkleić kod i teraz można poedytować :D Jednak mogą występować błędy więc najlepiej sprawdzać linijka po linijce jakie są błędy w kodzie bo to w zależności na jakiej wersji bukkita to było tworzone :P

 

Dobra rada: nie radzę edytowania pluginów zawierające wiele klas można się łatwo pogubić :D

Pozdrawiam

Opublikowano

Niech ktos mi to wyeksportuje w class:

 

 

package com.gmail.tirexgta.tguildsex.listeners;

 
import com.gmail.tirexgta.tguildsex.Main;
import com.gmail.tirexgta.tguildsex.mysql.DataGuild;
import com.gmail.tirexgta.tguildsex.mysql.DataGuildUser;
import com.gmail.tirexgta.tguildsex.mysql.Datasource;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.PluginManager;
 
public class RankingListener
  implements Listener
{
  Main plugin;
  
  public RankingListener(Main plugin)
  {
    this.plugin = plugin;
    this.plugin.getServer().getPluginManager().registerEvents(this, this.plugin);
  }
  
  @EventHandler(priority=EventPriority.HIGHEST)
  public void onPlayerDeath(PlayerDeathEvent e)
  {
    Player attackerNoPlayer = e.getEntity().getKiller();
    Player victimNoPlayer = e.getEntity();
    if (!(victimNoPlayer instanceof Player)) {
      return;
    }
    e.setDeathMessage(null);
    Player victim = victimNoPlayer.getPlayer();
    DataGuildUser vUser = this.plugin.data.getUserByPlayer(victim);
    vUser.setDeaths(vUser.getDeaths() + 1);
    vUser.setLastAttack(0L);
    DataGuild vGildia = this.plugin.data.getGuildByTag(vUser.getTag());
    if (vGildia != null)
    {
      vGildia.setZgony(vGildia.getZgony() + 1);
      vGildia.update();
    }
    if (!(attackerNoPlayer instanceof Player)) {
      return;
    }
    Player attacker = attackerNoPlayer.getPlayer();
    if (victim.equals(attacker)) {
      return;
    }
    DataGuildUser aUser = this.plugin.data.getUserByPlayer(attacker);
    int aPoint = aUser.getPoints();
    int vPoint = vUser.getPoints();
    
    int pointFinal = vPoint / 6 - aPoint / 8;
    
    aUser.setPoints(aPoint + pointFinal);
    aUser.setKills(aUser.getKills() + 1);
    aUser.update();
    vUser.setPoints(vPoint - pointFinal);
    vUser.update();
    
    DataGuild aGildia = this.plugin.data.getGuildByTag(aUser.getTag());
    if (aGildia != null)
    {
      aGildia.setPunkty(aGildia.getPunkty() + pointFinal);
      aGildia.setZabicia(aGildia.getZabicia() + 1);
      aGildia.update();
    }
    if (vGildia != null)
    {
      vGildia.setPunkty(vGildia.getPunkty() - pointFinal);
      vGildia.update();
    }
    e.setDeathMessage("§c" + vUser.getTag() + victim.getName() + " §6zostal zabity przez §c" + aUser.getTag() + attacker.getName() + "§6 [§c" + Integer.toString(pointFinal) + "§6]");
  }
  
  @EventHandler(priority=EventPriority.MONITOR, ignoreCancelled=true)
  public void onEntityDamage(EntityDamageByEntityEvent e)
  {
    if (e.isCancelled()) {
      return;
    }
    double dmg = e.getDamage();
    if (dmg == 0.0D) {
      return;
    }
    Entity victimNoPlayer = e.getEntity();
    if (!(victimNoPlayer instanceof Player)) {
      return;
    }
    Entity attackerNoPlayer = e.getDamager();
    if (!(attackerNoPlayer instanceof Player)) {
      return;
    }
    Player victim = ((Player)victimNoPlayer).getPlayer();
    Player attacker = ((Player)attackerNoPlayer).getPlayer();
    if (victim.equals(attacker)) {
      return;
    }
    DataGuildUser vUser = this.plugin.data.getUserByPlayer(victim);
    
    long time = System.currentTimeMillis();
    if (vUser.getLastAttack() < time) {
      victim.sendMessage("§4Zostales zaatakowany przez 10 sekund nie mozesz sie wylogowac!");
    }
    vUser.setLastAttack(time + 10000L);
    vUser.setLastAttacker(attacker.getName());
  }
  
  @EventHandler
  public void onPlayerQuit(PlayerQuitEvent e)
  {
    Player p = e.getPlayer();
    DataGuildUser user = this.plugin.data.getUserByPlayer(p);
    
    long time = System.currentTimeMillis();
    if (user == null) {
      return;
    }
    if (user.getLastAttack() > time)
    {
      p.setHealth(0.0D);
      p.teleport(p.getWorld().getSpawnLocation());
      Bukkit.broadcastMessage("§7Gracz §3" + p.getName() + " §7wylogowal sie Podczas Walki! §3- 50 pkt§7!");
      Bukkit.broadcastMessage("§7Ostatni Atakujacy: §3" + user.getLastAttacker());
      
      DataGuildUser aUser = this.plugin.data.getUserByNickName(user.getLastAttacker());
      int aPoint = aUser.getPoints();
      int vPoint = user.getPoints();
      int pointFinal = vPoint / 6 - aPoint / 8;
      aUser.setPoints(aPoint + pointFinal);
      aUser.setKills(aUser.getKills() + 1);
      user.setPoints(vPoint - pointFinal - 50);
      user.setDeaths(user.getDeaths() + 1);
      user.setLastAttack(0L);
      aUser.update();
      user.update();
      
      DataGuild aGildia = this.plugin.data.getGuildByTag(aUser.getTag());
      if (aGildia != null)
      {
        aGildia.setPunkty(aGildia.getPunkty() + pointFinal);
        aGildia.setZabicia(aGildia.getZabicia() + 1);
        aGildia.update();
      }
      DataGuild vGildia = this.plugin.data.getGuildByTag(user.getTag());
      if (vGildia != null)
      {
        vGildia.setPunkty(vGildia.getPunkty() - pointFinal - 50);
        vGildia.setZgony(vGildia.getZgony() + 1);
        vGildia.update();
      }
    }
  }
}
 
Opublikowano

Jak chcesz zmienic wiadomosci to polecam InClassTranslator do pobrania u Grzegorza na starej stronie :).
 

Opublikowano

NIE CHCE ZMIENIĆ WIADOMOŚCI TYLKO TO ŻE GDY KTOŚ ZDEDA I MA GILDIE TO NA CHACIE PRZED NICKIEM JEST TAG GILDII!!! - Już to zrobiłem w kodzie który podałem wyżej tylko teraz nwm jak go wyeksportować!

Opublikowano

Jak chcesz to zrobić to, zapewne MyGuilds?

Jak chcesz to napisz na pw z tym pluginem mam go w eclipse ;)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...