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

Jak napisać god - class plugin


Rekomendowane odpowiedzi

Opublikowano
package me.toolsy.therazerpl.core.commands;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

import java.util.ArrayList;
import java.util.List;

import me.toolsy.therazerpl.core.Main;
import me.toolsy.therazerpl.core.Messages;

public class GodCMD implements CommandExecutor{
	public Main plugin;
	private static List<Player> g = new ArrayList<Player>();
	public void God(Main plugin){
		this.plugin = plugin;
		this.plugin.getCommand("god").setExecutor(this);
	}
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
		if((sender instanceof Player)){
			Player p = (Player)sender;
			if(!p.hasPermission("therazerpl.core.god")){
				p.sendMessage(Messages.convertMessage("&c&k&l!&4&l%cz%cz%cz&c&k&l! &7- &cNie posiadasz wystarczajacego uprawnienia do wykonania komendy &7/god&c!"));
				return false;
			}
			if(g.contains(p.getPlayer())){
				g.remove(p.getPlayer());
				p.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &4wylaczony&c!"));
				return true;
			}
			if(args.length == 0){
				g.add(p.getPlayer());
				p.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &2wlaczony&c!"));
				return true;
			}
			if(args.length == 1){
				Player ktos = Bukkit.getPlayerExact(args[0]);
				if(g.contains(ktos.getName())){
					g.remove(ktos.getName());
					p.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &4wylaczony &cdla gracza &e" + ktos.getName() + "&c!"));
					ktos.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &4wylaczony&c!"));
					return true;
				}if(ktos != null){
					g.add(ktos.getPlayer());
					p.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &2wlaczony &cdla gracza &e" + ktos.getName() + "&c!"));
					ktos.sendMessage(Messages.convertMessage("&a&l%ok &cTryb &eGod &czostal &2wlaczony&c!"));
					return true;
				}
			}
		}
		sender.sendMessage(Messages.convertMessage("Nie wykonasz tego polecenia z konsoli!"));
		return false;
	}
	@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled=false)
	public void onDamage(EntityDamageEvent e){
		if(e.getEntity() instanceof Player && g.contains(e.getEntity())){
			e.setCancelled(true);
			((Player) e.getEntity()).setHealth(((Player) e.getEntity()).getMaxHealth());
		}
	}
	@EventHandler
	public void onJoin(PlayerJoinEvent e){
		g.remove(e.getPlayer());
	}
	@EventHandler
	public void onLeave(PlayerQuitEvent e){
		g.remove(e.getPlayer());
	}
}

mam coś takiego ale mi to nie działa nie ma żadnych błędów ... lecz jak mnie mobek bije lub spadam z wysokości to i tak dostaję dmg... poprawi mi to ktoś?

@Entify

 

TheMinecraft

#LetsPlayOnceAgain

#TheMinecraft

Śledź nas na FaceBook/TheMinecraftpl!

 

 

Opublikowano

po prostu zrób liste z uuid graczy

 

private static final List<UUID> players = new ArrayList<>();

 

w komendzie:

private static String on = "Wlaczyles goda!";
private static String off = "Wylaczyles goda!";


public boolean..

final Player player = (Player)sender;
final UUID uuid = player.getUniqueId();

if (players.contains(uuid)){ 
	players.remove(uuid);  	
	player.sendMessage(off);
	return true;
}
players.add(uuid);
player.sendMessage(on);

i jak potem cos tego typu:

public void onDmg(EntityDamageEvent e){
	if (e.getEntity().getType() != EntityType.PLAYER) return;

	final Player pv = (Player)e.getEntity(); //victim
	final UUID uuidv = p.getUniqueId();

	if (players.contains(uuida))
		e.setCancelled(true);

//no i jeszcze z attackerem sie pobaw

 

 

@topic

a co do twojego kodu

to znow porownujesz obiekt string z obiektem player

 

i jeszcze to:

Cytat

			if(g.contains(p.getPlayer())){

nieee plz, czemu getPlayer()..

 

Aktualnie interesuję się javą, powoli ogarniam java swing i awt, czasem bawię się HTML.

  • JimForce zmienił(a) tytuł na Jak napisać god - class plugin

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...