Skip to content

Commit

Permalink
Updated to v3.0.2 (B:20)
Browse files Browse the repository at this point in the history
Version 3.0.2 (B:20)
* Fixes some odds and ends for github

Version 3.0.1 (B:19)
* ++Fixed the permissions
* Fixed messages.yml
* Fixed a potential database issue

Version 3.0 (B:15)
* Updated to CB 1.2.5!!!
* Switched to Bukkit API permissions.
* Better country ban / unban code. (Can accept names, and displays name & code!)
* Added anonymous statistic reporting to http://mcstats.org/plugin/EasyBan
** Country banning and country statistics require GeoIPTools v0.5.1+ http://dev.bukkit.org/server-mods/geoiptools/files/
  • Loading branch information
Fishrock123 committed May 17, 2012
1 parent 95300b0 commit 04ffcde
Show file tree
Hide file tree
Showing 26 changed files with 927 additions and 263 deletions.
8 changes: 5 additions & 3 deletions src/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: EasyBan
main: uk.org.whoami.easyban.EasyBan
version: 2.2
version: 3.0.2 B:20
description: 'Ban people/subnets/countries from "offline" Servers'
author: whoami
authors:
- whoami
- Fishrock123
website: 'http://dev.bukkit.org/server-mods/easyban/'
softdepend: [GeoIPTools]
commands:
Expand Down Expand Up @@ -57,7 +59,7 @@ commands:
elistwhite:
description: Show whitelisted players
usage: /elistwhite
reload:
ereload:
description: Reload configuration file
usage: /ereload
permissions:
Expand Down
100 changes: 88 additions & 12 deletions src/uk/org/whoami/easyban/EasyBan.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,31 @@

package uk.org.whoami.easyban;

import javax.naming.NamingException;
import java.io.IOException;

import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import uk.org.whoami.easyban.commands.*;

import com.maxmind.geoip.LookupService;

import uk.org.whoami.easyban.commands.AlternativeCommand;
import uk.org.whoami.easyban.commands.BanCommand;
import uk.org.whoami.easyban.commands.BanCountryCommand;
import uk.org.whoami.easyban.commands.BanInfoCommand;
import uk.org.whoami.easyban.commands.BanSubnetCommand;
import uk.org.whoami.easyban.commands.HistoryCommand;
import uk.org.whoami.easyban.commands.KickCommand;
import uk.org.whoami.easyban.commands.ListBansCommand;
import uk.org.whoami.easyban.commands.ListCountryBansCommand;
import uk.org.whoami.easyban.commands.ListSubnetBansCommand;
import uk.org.whoami.easyban.commands.ListTemporaryBansCommand;
import uk.org.whoami.easyban.commands.ListWhitelistCommand;
import uk.org.whoami.easyban.commands.ReloadCommand;
import uk.org.whoami.easyban.commands.UnbanCommand;
import uk.org.whoami.easyban.commands.UnbanCountryCommand;
import uk.org.whoami.easyban.commands.UnbanSubnetCommand;
import uk.org.whoami.easyban.commands.UnwhitelistCommand;
import uk.org.whoami.easyban.commands.WhitelistCommand;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.datasource.HSQLDataSource;
import uk.org.whoami.easyban.datasource.MySQLDataSource;
Expand All @@ -28,15 +49,20 @@
import uk.org.whoami.easyban.listener.EasyBanPlayerListener;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.tasks.UnbanTask;
import uk.org.whoami.easyban.util.ConsoleLogger;
import uk.org.whoami.easyban.util.DNSBL;
import uk.org.whoami.easyban.util.Metrics;
import uk.org.whoami.easyban.util.Metrics.Graph;
import uk.org.whoami.geoip.GeoIPLookup;
import uk.org.whoami.geoip.GeoIPTools;

//Updating & cleanup by Fishrock123 <Fishrock123@rocketmail.com>
public class EasyBan extends JavaPlugin {

private DataSource database;
private Settings settings;
private DNSBL dnsbl;
GeoIPLookup geo;

@Override
public void onDisable() {
Expand Down Expand Up @@ -82,24 +108,22 @@ public void onEnable() {
dnsbl.addLookupService(bl);
}

this.getServer().getPluginManager().registerEvents(
new EasyBanPlayerListener(database, dnsbl), this);

} catch (NamingException ex) {
EasyBanPlayerListener l = new EasyBanPlayerListener(database, dnsbl);
this.getServer().getPluginManager().registerEvents(l, this);
this.getServer().getPluginManager().registerEvents(l, this);
} catch (Exception ex) {
ConsoleLogger.info(ex.getMessage());
ConsoleLogger.info("DNSBL error");
this.getServer().getPluginManager().disablePlugin(this);
return;
}

GeoIPLookup geo = getGeoIPLookup();
geo = getGeoIPLookup();
if (geo != null) {
this.getServer().getPluginManager().registerEvents(
new EasyBanCountryListener(database, geo), this);
this.getServer().getPluginManager().registerEvents(new EasyBanCountryListener(database, geo), this);
}

this.getServer().getScheduler().scheduleAsyncRepeatingTask(this,
new UnbanTask(database), 60L, 1200L);
this.getServer().getScheduler().scheduleAsyncRepeatingTask(this, new UnbanTask(database), 60L, 1200L);

this.getCommand("ekick").setExecutor(new KickCommand());
this.getCommand("eban").setExecutor(new BanCommand(database));
Expand All @@ -118,8 +142,60 @@ public void onEnable() {
this.getCommand("ewhitelist").setExecutor(new WhitelistCommand(database));
this.getCommand("eunwhitelist").setExecutor(new UnwhitelistCommand(database));
this.getCommand("elistwhite").setExecutor(new ListWhitelistCommand(database));
this.getCommand("ereload").setExecutor(new ReloadCommand(database,dnsbl));
this.getCommand("ereload").setExecutor(new ReloadCommand(database, dnsbl));

try {

Metrics metrics = new Metrics(this);

Graph banGraph = metrics.createGraph("Ban data");

banGraph.addPlotter(new Metrics.Plotter("Nickname Bans") {
@Override
public int getValue() {
return database.getBannedNicks().length;
}
});
banGraph.addPlotter(new Metrics.Plotter("Subnet Bans") {
@Override
public int getValue() {
return database.getBannedSubnets().length;
}
});
banGraph.addPlotter(new Metrics.Plotter("Temporary bans") {
@Override
public int getValue() {
return database.getTempBans().size();
}
});

if (geo != null) {

banGraph.addPlotter(new Metrics.Plotter("Country bans") {
@Override
public int getValue() {
return database.getBannedCountries().length;
}
});

Graph countryGraph = metrics.createGraph("Commonly Banned Countries");

for (String ccode : database.getBannedCountries()) {
countryGraph.addPlotter(new Metrics.Plotter(LookupService.getCountryName(ccode)) {
@Override
public int getValue() {
return 1;
}
});
}
}

metrics.start();

} catch (IOException e) {
ConsoleLogger.info(e.getMessage());
}

ConsoleLogger.info("EasyBan enabled; Version: " + this.getDescription().
getVersion());
}
Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/BanCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;
import uk.org.whoami.easyban.util.Subnet;

public class BanCommand extends EasyBanCommand {
Expand Down
22 changes: 17 additions & 5 deletions src/uk/org/whoami/easyban/commands/BanCountryCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;

import com.maxmind.geoip.LookupService;

import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;

//Updating & cleanup by Fishrock123 <Fishrock123@rocketmail.com>
public class BanCountryCommand extends EasyBanCommand {

private DataSource database;
Expand All @@ -32,15 +36,23 @@ public BanCountryCommand(DataSource database) {
@Override
protected void execute(CommandSender cs, Command cmnd, String cmd, String[] args) {
if (args.length == 0) {
return;
return;
}

if (!LookupService.hasCountryCode(args[0])) {
if (LookupService.hasCountryName(args[0])) {
args[0] = LookupService.getCountryCode(args[0]);
} else {
return;
}
}

database.banCountry(args[0]);

Settings settings = Settings.getInstance();
if (settings.isCountryBanPublic()) {
cs.getServer().broadcastMessage(m._("A country has been banned: ")
+ args[0]);
cs.getServer().broadcastMessage(m._("A country has been banned: ") + LookupService.getCountryName(args[0]) + " (" + args[0] + ')');
}
ConsoleLogger.info(admin + " banned the country " + args[0]);
ConsoleLogger.info(admin + " banned the country " + LookupService.getCountryName(args[0]) + " (" + args[0] + ')');
}
}
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/BanSubnetCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;
import uk.org.whoami.easyban.util.Subnet;

public class BanSubnetCommand extends EasyBanCommand {
Expand Down
7 changes: 4 additions & 3 deletions src/uk/org/whoami/easyban/commands/EasyBanCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import uk.org.whoami.easyban.settings.Message;
import uk.org.whoami.easyban.permission.Permission;

//Updating by Fishrock123 <Fishrock123@rocketmail.com>
public abstract class EasyBanCommand implements CommandExecutor {

protected String admin;
Expand All @@ -33,10 +33,11 @@ public abstract class EasyBanCommand implements CommandExecutor {
public boolean onCommand(CommandSender cs, Command cmnd, String cmd, String[] args) {
admin = cs instanceof Player ? ((Player) cs).getName() : "Console";

if(Permission.hasPermission(cs, cmd)) {
if (cs.hasPermission("easyban." + cmd.toLowerCase())) {
this.execute(cs, cmnd, cmd, args);
return true;
}
return true;
return false;
}

protected final void sendListToSender(CommandSender sender, String[] list) {
Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/KickCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;

public class KickCommand extends EasyBanCommand {

Expand Down
3 changes: 2 additions & 1 deletion src/uk/org/whoami/easyban/commands/ReloadCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.DNSBL;

//Cleanup by Fishrock123 <Fishrock123@rocketmail.com>
public class ReloadCommand extends EasyBanCommand {

private DNSBL dnsbl;
Expand All @@ -40,7 +41,7 @@ protected void execute(CommandSender cs, Command cmnd, String cmd, String[] args
database.reload();
dnsbl.clearLookupService();

for(String dns : settings.getBlockLists()) {
for (String dns : settings.getBlockLists()) {
dnsbl.addLookupService(dns);
}

Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/UnbanCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.util.ConsoleLogger;

public class UnbanCommand extends EasyBanCommand {

Expand Down
24 changes: 19 additions & 5 deletions src/uk/org/whoami/easyban/commands/UnbanCountryCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,13 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;

import com.maxmind.geoip.LookupService;

import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.util.ConsoleLogger;

//Updating & cleanup by Fishrock123 <Fishrock123@rocketmail.com>
public class UnbanCountryCommand extends EasyBanCommand {

private DataSource database;
Expand All @@ -30,11 +34,21 @@ public UnbanCountryCommand(DataSource database) {

@Override
protected void execute(CommandSender cs, Command cmnd, String cmd, String[] args) {
if (args.length == 0) {
return;
if (args.length == 0) {
return;
}

if (!LookupService.hasCountryCode(args[0])) {
if (LookupService.hasCountryName(args[0])) {
args[0] = LookupService.getCountryCode(args[0]);
} else {
return;
}
}

database.unbanCountry(args[0]);
cs.getServer().broadcastMessage(m._("A country has been unbanned: ") + args[0]);
ConsoleLogger.info(admin + " unbanned the country " + args[0]);

cs.getServer().broadcastMessage(m._("A country has been unbanned: ") + LookupService.getCountryName(args[0]) + " (" + args[0] + ')');
ConsoleLogger.info(admin + " unbanned the country " + LookupService.getCountryName(args[0]) + " (" + args[0] + ')');
}
}
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/UnbanSubnetCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.util.ConsoleLogger;
import uk.org.whoami.easyban.util.Subnet;

public class UnbanSubnetCommand extends EasyBanCommand {
Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/UnwhitelistCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.util.ConsoleLogger;

public class UnwhitelistCommand extends EasyBanCommand {

Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/commands/WhitelistCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.datasource.DataSource;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;

public class WhitelistCommand extends EasyBanCommand {

Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/datasource/HSQLDataSource.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import org.bukkit.plugin.java.JavaPlugin;

import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.util.ConsoleLogger;

public class HSQLDataSource extends SQLDataSource {

Expand Down
2 changes: 1 addition & 1 deletion src/uk/org/whoami/easyban/datasource/MySQLDataSource.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import java.sql.SQLException;
import java.sql.Statement;

import uk.org.whoami.easyban.ConsoleLogger;
import uk.org.whoami.easyban.settings.Settings;
import uk.org.whoami.easyban.util.ConsoleLogger;

/**
*
Expand Down

0 comments on commit 04ffcde

Please sign in to comment.