Marketplace/Gameplay/Itens

Itens

minecraftFreev1.0.0

Description

@EventHandler
public void onItemProtect(EntityDamageEvent e) {
if (e.getEntity() instanceof Item) {
Item item = (Item) e.getEntity();
if (item.getItemStack().hasItemMeta() &&
item.getItemStack().getItemMeta().getPersistentDataContainer().has(itemKey, PersistentDataType.BYTE)) {
e.setCancelled(true); // Imune a fogo, explosão, etc.
}
}
}
package com.networkmc.reliquias.listeners;

import com.networkmc.reliquias.Main;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerJoinEvent;

public class PlayerListener implements Listener {
private Main plugin;

public PlayerListener(Main plugin) { this.plugin = plugin; }

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
String uuid = p.getUniqueId().toString();
String ip = p.getAddress().getAddress().getHostAddress();

if (!plugin.getDbManager().hasReceived(uuid, ip)) {
int id = plugin.getItemManager().getNextAvailableId();
if (id != -1) {
p.getInventory().addItem(plugin.getItemManager().createItem(id));
plugin.getDbManager().registerEntry(uuid, ip, id);
}
}
}

@EventHandler
public void onPVP(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Player && e.getEntity() instanceof Player) {
long time = e.getDamager().getWorld().getTime();
// Minecraft dia: 0 a 12000
if (time < 12300 || time > 23850) {
e.setCancelled(true);
e.getDamager().sendMessage("§cVocê não pode atacar jogadores de dia! O PvP está ativo somente à noite.");
}
}
}
}
package com.networkmc.reliquias.listeners;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.entity.PlayerDeathEvent;

public class ChatListener implements Listener {

@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
String msg = e.getMessage().toLowerCase();
if (msg.contains(".com") || msg.contains(".br") || msg.contains("http") || msg.contains("www.")) {
e.setCancelled(true);
}
}

@EventHandler public void onJoin(PlayerJoinEvent e) {
e.setJoinMessage("§fO jogador §b" + e.getPlayer().getName() + " §fentrou na partida.");
}

@EventHandler public void onQuit(PlayerQuitEvent e) { e.setQuitMessage(null); }
@EventHandler public void onDeath(PlayerDeathEvent e) { e.setDeathMessage(null); }
}
package com.networkmc.reliquias.managers;

import com.networkmc.reliquias.Main;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;

public class DatabaseManager {
private File file;
private FileConfiguration config;

public DatabaseManager(Main plugin) {
file = new File(plugin.getDataFolder(), "data.yml");
if (!file.exists()) plugin.saveResource("data.yml", false);
config = YamlConfiguration.loadConfiguration(file);
}

public boolean hasReceived(String uuid, String ip) {
return config.contains("players." + uuid) || config.contains("ips." + ip.replace(".", "_"));
}

public void registerEntry(String uuid, String ip, int itemId) {
config.set("players." + uuid, itemId);
config.set("ips." + ip.replace(".", "_"), uuid);
config.set("distributed." + itemId, true);
save();
}

public boolean isDistributed(int id) { return config.getBoolean("distributed." + id, false); }

private void save() {
try { config.save(file); } catch (IOException e) {}
}
}

Reviews (0)

No reviews yet

Be the first to leave a review!

Mateus 184

Seller

Mateus 184

0

downloads

Versionv1.0.0
Platformminecraft
Typespigot
Minecraft VersionMC 1.20
CategoryMinecraft Plugins > Gameplay
Published on29/01/2026
Last update21/04/2026
Free