Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Papajittan authored Mar 10, 2022
1 parent ebc16d6 commit 56c6d69
Show file tree
Hide file tree
Showing 7 changed files with 218 additions and 0 deletions.
20 changes: 20 additions & 0 deletions PvPManagerRevamped.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$USER_HOME$/Downloads/spigot-api-1.18.1-R0.1-20211210.132813-1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>
50 changes: 50 additions & 0 deletions src/com/august/pvpmanager/Command.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.august.pvpmanager;

import org.bukkit.ChatColor;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class Command implements CommandExecutor {
private boolean isOnOff(String s){
if(s.equalsIgnoreCase("on") || s.equalsIgnoreCase("off")){
return true;
}else {
return false;
}
}
@Override
public boolean onCommand(CommandSender commandSender, org.bukkit.command.Command command, String s, String[] strings) {
var player = (Player) commandSender;
if(commandSender == null) return false;
if(strings.length <= 0) {
player.sendMessage(ChatColor.GOLD + "Please enter on or off to turn on or off pvp!");
return true;
}
if(!isOnOff(strings[0])){
player.sendMessage(ChatColor.RED + "Please enter on or off only!");
return true;
}
PluginSupporter.Data playerpvp = PluginSupporter.getPvP(player.getName());
Boolean playerpvpbool = playerpvp.PvP;
if(strings[0].equalsIgnoreCase("on")){
if(playerpvpbool == true){
player.sendMessage(ChatColor.RED + "Your pvp is already turned on!");
return true;
}
PluginSupporter.setPvP(player.getName(), true);
player.sendMessage(ChatColor.GOLD + "Your pvp successfully turn on!");
return true;
}
if(strings[0].equalsIgnoreCase("off")){
if(playerpvpbool == false){
player.sendMessage(ChatColor.RED + "Your pvp is already turned off!");
return true;
}
PluginSupporter.setPvP(player.getName(), false);
player.sendMessage(ChatColor.GOLD + "Your pvp successfully turn off!");
return true;
}
return true;
}
}
54 changes: 54 additions & 0 deletions src/com/august/pvpmanager/Event.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package com.august.pvpmanager;

import org.bukkit.block.data.type.TNT;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerJoinEvent;

public class Event implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent Event){
Player player = Event.getPlayer();
String playername = player.getName();
PluginSupporter.Data playerpvp = PluginSupporter.getPvP(playername);
if(playerpvp == null) {
PluginSupporter.setPvP(playername, false);
}
}
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent Event){
if(Event.getCause() == EntityDamageEvent.DamageCause.PROJECTILE && Event.getEntity() instanceof Player){
Arrow shooter = (Arrow) Event.getDamager();
Player shoooter = (Player) shooter.getShooter();
Player players = (Player) Event.getEntity();
PluginSupporter.Data playerpvps = PluginSupporter.getPvP(players.getName());
Boolean playerspvpbool = playerpvps.PvP;
String shootername = shoooter.getName();
PluginSupporter.Data shooterpvp = PluginSupporter.getPvP(shootername);
Boolean shooterpvpbool = shooterpvp.PvP;
if(shooterpvpbool == false || playerspvpbool == false){
Event.setCancelled(true);
return;
}
return;
}
Player damager = (Player) Event.getDamager();
String damagername = damager.getName();
Player player = (Player) Event.getEntity();
String playername = player.getName();
if(!(damager instanceof Player) || !(player instanceof Player)) return;
PluginSupporter.Data damagerpvp = PluginSupporter.getPvP(damagername);
PluginSupporter.Data playerpvp = PluginSupporter.getPvP(playername);
Boolean damagerpvpbool = damagerpvp.PvP;
Boolean playerpvpbool = playerpvp.PvP;

if(damagerpvpbool == false || playerpvpbool == false){
Event.setCancelled(true);
}
}
}
16 changes: 16 additions & 0 deletions src/com/august/pvpmanager/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.august.pvpmanager;

import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
public static Main instance;
@Override
public void onEnable(){
instance = this;
getServer().getConsoleSender().sendMessage(ChatColor.AQUA + this.getName() +" is enabling!");
getServer().getPluginManager().registerEvents(new Event(), this);
getCommand("pvp").setExecutor(new Command());
getCommand("pvp").setTabCompleter(new TabCompleter());
}
}
41 changes: 41 additions & 0 deletions src/com/august/pvpmanager/PluginSupporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.august.pvpmanager;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;

import java.io.File;

public class PluginSupporter {
protected static void setPvP(String playername, boolean bool){
File var10002 = Main.instance.getDataFolder();
File f = new File(var10002 + File.separator + playername + ".yml");
if (!f.exists()) {
try {
f.createNewFile();
} catch (Exception e) {
Bukkit.getServer().getConsoleSender().sendMessage(e.getMessage());
}
}
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(f);
yamlConfiguration.set("pvp", bool);
try{
yamlConfiguration.save(f);
}catch (Exception e){
Bukkit.getServer().getConsoleSender().sendMessage(e.getMessage());
}
}
protected static PluginSupporter.Data getPvP(String playername){
File var10002 = Main.instance.getDataFolder();
File f = new File(var10002 + File.separator + playername + ".yml");
if(!f.exists()){
return null;
}
YamlConfiguration yml = YamlConfiguration.loadConfiguration(f);
PluginSupporter.Data pvp = new PluginSupporter.Data();
pvp.PvP = yml.getBoolean("pvp");
return pvp;
}
protected static class Data{
protected Boolean PvP;
}
}
28 changes: 28 additions & 0 deletions src/com/august/pvpmanager/TabCompleter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.august.pvpmanager;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class TabCompleter implements org.bukkit.command.TabCompleter {
@Override
public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
List<String> list = Arrays.asList("on", "off");
List<String> completions = null;
String input = strings[0].toLowerCase();
for(String e : list){
if(e.startsWith(input)){
if(completions == null){
completions = new ArrayList();
}
completions.add(e);
}
}
if(completions != null) Collections.sort(completions);
return completions;
}
}
9 changes: 9 additions & 0 deletions src/plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: PvPManager
main: com.august.pvpmanager.Main
version: 1.0.0
description: Allow you to manage pvp!
author: August
commands:
pvp:
description: Let you to turn on or off pvp!
usage: /

0 comments on commit 56c6d69

Please sign in to comment.