First.
This commit is contained in:
commit
aeeaa83745
12 changed files with 192 additions and 0 deletions
12
.classpath
Normal file
12
.classpath
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/tenkumaLib"/>
|
||||
<classpathentry kind="lib" path="/home/adrian/Downloads/craftbukkit-1060.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
17
.project
Normal file
17
.project
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>GhostsAndStuff</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
2
.settings/org.eclipse.core.resources.prefs
Normal file
2
.settings/org.eclipse.core.resources.prefs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
9
.settings/org.eclipse.jdt.core.prefs
Normal file
9
.settings/org.eclipse.jdt.core.prefs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
BIN
bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class
Normal file
BIN
bin/gd/rf/adrianvictor/stuff/GhostsAndStuff.class
Normal file
Binary file not shown.
BIN
bin/gd/rf/adrianvictor/stuff/RainbowChat.class
Normal file
BIN
bin/gd/rf/adrianvictor/stuff/RainbowChat.class
Normal file
Binary file not shown.
BIN
bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class
Normal file
BIN
bin/gd/rf/adrianvictor/stuff/SkibidiBlocker.class
Normal file
Binary file not shown.
6
config.yml
Normal file
6
config.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
# Strikes a lightning to the player who says specific words
|
||||
skibidiBlocker: true
|
||||
skibidiBlockerCaseSensitive: false
|
||||
skibidiBlockerWords:
|
||||
- 'skibidi'
|
||||
6
plugin.yml
Normal file
6
plugin.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
author: tenkuma
|
||||
database: false
|
||||
main: gd.rf.adrianvictor.stuff.GhostsAndStuff
|
||||
name: GhostsAndStuff
|
||||
url: https://adrianvictor.rf.gd
|
||||
version: '1.0'
|
||||
49
src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java
Normal file
49
src/gd/rf/adrianvictor/stuff/GhostsAndStuff.java
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
package gd.rf.adrianvictor.stuff;
|
||||
|
||||
import gd.rf.adrianvictor.lib.ConfigurationEx;
|
||||
import gd.rf.adrianvictor.lib.Log;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import java.util.List;
|
||||
|
||||
public class GhostsAndStuff extends JavaPlugin {
|
||||
ConfigurationEx config;
|
||||
PluginManager pm;
|
||||
Log logger;
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
logger.info("is being disabled.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
logger = new Log(this);
|
||||
pm = this.getServer().getPluginManager();
|
||||
config = new ConfigurationEx(this, "config.yml", logger);
|
||||
config.loadConfig();
|
||||
loadModules();
|
||||
logger.info("is starting.");
|
||||
}
|
||||
|
||||
public void loadModules() {
|
||||
PlayerListener rainbowChat = new RainbowChat(this);
|
||||
logger.info("Loading module RainbowChat");
|
||||
pm.registerEvent(Type.PLAYER_CHAT, rainbowChat, Priority.High, this);
|
||||
|
||||
if (this.getConfiguration().getBoolean("skibidiBlocker", true)) {
|
||||
logger.info("Loading module SkibidiBlocker");
|
||||
|
||||
List<String> words = this.getConfiguration().getStringList("skibidiBlockerWords", null);
|
||||
if (words == null || words.isEmpty()) {
|
||||
logger.warning("SkibidiBlocker is enabled, but no words were provided. Disabling.");
|
||||
} else {
|
||||
PlayerListener verboseWorldChange = new SkibidiBlocker(this, logger);
|
||||
pm.registerEvent(Type.PLAYER_CHAT, verboseWorldChange, Priority.High, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
42
src/gd/rf/adrianvictor/stuff/RainbowChat.java
Normal file
42
src/gd/rf/adrianvictor/stuff/RainbowChat.java
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package gd.rf.adrianvictor.stuff;
|
||||
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import gd.rf.adrianvictor.lib.Color;
|
||||
|
||||
public class RainbowChat extends PlayerListener {
|
||||
JavaPlugin plugin;
|
||||
|
||||
public RainbowChat(JavaPlugin _plugin) {
|
||||
plugin = _plugin;
|
||||
}
|
||||
|
||||
public void onPlayerChat(PlayerChatEvent event) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
String message = Color.formatColors(event.getMessage());
|
||||
int index = 0;
|
||||
|
||||
while (index < message.length()) {
|
||||
int startIndex = message.indexOf("§z", index);
|
||||
if (startIndex == -1) {
|
||||
result.append(message.substring(index));
|
||||
break;
|
||||
}
|
||||
|
||||
result.append(message, index, startIndex);
|
||||
int endIndex = startIndex + 2;
|
||||
|
||||
while (endIndex < message.length() && message.charAt(endIndex) != '§') {
|
||||
endIndex++;
|
||||
}
|
||||
|
||||
String textToColor = message.substring(startIndex + 2, endIndex);
|
||||
result.append(Color.rainbow(textToColor));
|
||||
|
||||
index = endIndex;
|
||||
}
|
||||
event.setMessage(result.toString());
|
||||
}
|
||||
}
|
||||
49
src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java
Normal file
49
src/gd/rf/adrianvictor/stuff/SkibidiBlocker.java
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
package gd.rf.adrianvictor.stuff;
|
||||
|
||||
import java.util.List;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import gd.rf.adrianvictor.lib.Log;
|
||||
|
||||
public class SkibidiBlocker extends PlayerListener {
|
||||
JavaPlugin plugin;
|
||||
Log logger;
|
||||
|
||||
public SkibidiBlocker(JavaPlugin _plugin, Log _logger) {
|
||||
plugin = _plugin;
|
||||
logger = _logger;
|
||||
}
|
||||
|
||||
public void onPlayerChat(PlayerChatEvent event) {
|
||||
String message = event.getMessage();
|
||||
List<String> blockedWords = plugin.getConfiguration().getStringList("skibidiBlockerWords", null);
|
||||
|
||||
if (blockedWords == null) {
|
||||
logger.warning("Blocked words list is null!");
|
||||
return;
|
||||
}
|
||||
if (blockedWords.isEmpty()) {
|
||||
logger.warning("Blocked words list is empty!");
|
||||
return;
|
||||
}
|
||||
|
||||
boolean caseSensitive = plugin.getConfiguration().getBoolean("skibidiBlockerCaseSensitive", true);
|
||||
|
||||
for (String blockedWord : blockedWords) {
|
||||
if (!caseSensitive) {
|
||||
if (message.toLowerCase().contains(blockedWord.toLowerCase())) {
|
||||
logger.info(event.getPlayer().getDisplayName() + " said a blocked word (case insensitive).");
|
||||
event.getPlayer().getWorld().strikeLightning(event.getPlayer().getLocation()); // Ensure it works
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (message.contains(blockedWord)) {
|
||||
logger.info(event.getPlayer().getDisplayName() + " said a blocked word (case sensitive).");
|
||||
event.getPlayer().getWorld().strikeLightning(event.getPlayer().getLocation());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue