Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
4713598
Added ToggleLamp
bigbrainiac10 Apr 11, 2019
8dccbcb
Merge pull request #5 from bigbrainiac10/master
Maxopoly Apr 22, 2019
1ae55c5
Merge branch 'master' of github.com:CivClassic/SimpleAdminHacks
Maxopoly Apr 22, 2019
7977358
Removed debug messages
bigbrainiac10 Apr 22, 2019
067aadc
Merge pull request #6 from bigbrainiac10/master
Maxopoly Apr 22, 2019
5f0d04d
Add new BasicHack and autoloading infrastructure
Maxopoly Aug 20, 2019
ab1e6ad
Partial 1.14 update
Maxopoly Aug 20, 2019
4d52acf
Mostly complete 1.14 update
Maxopoly Aug 20, 2019
a2a8f51
Add all of Humbug
Maxopoly Aug 22, 2019
9cb7b0d
Reverting some null checks, I know this will cause warnings in IDE bu…
ProgrammerDan Sep 4, 2019
118e28f
Adding in dragon controls, might need to separate out a bit, but adds…
ProgrammerDan Sep 10, 2019
3746205
Fix up ArthropodEgg hack
Maxopoly Oct 24, 2019
64cb6b3
Resolve merge conflict
Maxopoly Oct 25, 2019
b6ad1a0
Last fixes to make compile
Maxopoly Oct 25, 2019
7056077
Add api version to plugin.yml
Maxopoly Oct 25, 2019
28beac2
Actually launch hacks
Maxopoly Oct 27, 2019
118d6c7
Actually make everything new work
Maxopoly Oct 27, 2019
a66b625
Fixed issue where onPlayerInteract() would re-enable cancelled event
Apr 12, 2020
e13f45c
Merge pull request #9 from Falvyu/civ14_2
Maxopoly Apr 13, 2020
67e90ac
Cherry pick autorespawn
Protonull Feb 17, 2020
89bfa33
FIx banner hack
Maxopoly Apr 22, 2020
cf3f1be
Begin implementing EventDebugger
Maxopoly Apr 23, 2020
bdc233c
Working eventdebug
Maxopoly Apr 24, 2020
4ef71b7
Prevent cobble mountains and wandering trader
Maxopoly Apr 24, 2020
ea20108
Added configuration option to disable the Bad Omen effect given by
Apr 18, 2020
d2a99e9
Added config option to disable pillager patrols
Apr 18, 2020
c3d6081
Completed status() function with the other GameTuning options
Apr 18, 2020
677d1ce
Added option to disable Phantoms
Apr 25, 2020
6e34681
Fixed GameFeaturesConfig so that phantomSpawning is properly set
Apr 25, 2020
136999e
Implement anti fastbreak
Maxopoly Apr 26, 2020
bbd784c
Advanced anti fast break
Maxopoly Apr 27, 2020
eb7b4bb
Readd Humbugs Pearl TP fixes
Maxopoly Apr 27, 2020
91c384d
Merge pull request #10 from Falvyu/civ14_2
Maxopoly Apr 27, 2020
396dd97
Added Phantom Management
Protonull Apr 29, 2020
5b06e5f
Merge pull request #11 from Protonull/civ14
Maxopoly Apr 29, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@
/bin/
.project
.classpath
.metadata
.metadata
.idea/
*.iml
31 changes: 25 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,12 @@ Similar to Game Fixes, but distinct in that the intent here is on hacks that _tu
or alter existing mechanics without fully disabling them or without fixing them.
Things like altering armor damage reduction or tool impact would be good fits.

### HackBot
### ~~HackBot~~

An experimental module whose complexity is approaching divorce from SAH, this is
(Removed in 1.2.4)
~~An experimental module whose complexity is approaching divorce from SAH, this is
a bit of mid-work code that allows operators to define static Bots that show up
like "real" players but aren't.
like "real" players but aren't.~~

### Introbook

Expand All @@ -84,12 +85,13 @@ Host of the `/invsee` command, gives insight into active player inventory, armor
health and more. I hope / intend to add another portion to this that allows online
and offline inventory management via `/invmod` but this is as of now not started.

### InvisibleFix and InvisibleFixTwo
### ~~InvisibleFix and InvisibleFixTwo~~

My hope is to remove these in time, but for 1.9 and 1.10 minecraft players
(Removed in 1.3.0)
~~My hope is to remove these in time, but for 1.9 and 1.10 minecraft players
go invisible all the time. Both of these hacks use different approaches to help
preserve the visiblity of players. The second hack is the more invasive, sending
explicit location packets when the situation indicates its usefulness.
explicit location packets when the situation indicates its usefulness.~~

### NewfriendAssist

Expand All @@ -107,6 +109,23 @@ are actively breaking reinforced containers.
This one is pretty Devoted iteration 3 specific. Allows tracking server wide of
all breaks or builds under a specific y level.

### ToggleLamp

A solid piece of contributed code, this hack lets redstone lamps be used as
clickable-on, clickable-off light sources without additional redstone infrastructure.

### HumbugBatchOne

A new BasicHack (thanks Maxopoly) which encompasses a number of previously unincluded
Humbug gameplay modifications. Specifically, sheep wool dying, anvil use, enchanting table use,
cauldrons sourcing infinite water, disabling ender dragon, disabling iron farms,
disabling ender crystal damage, disable mining fatigue, and equipping banners as hats.


### PortalSpawnModifier

Another new BasicHack which allows control of the spawn of creatures rate from nether portals

### TimingsHack

This is mature enough to be its own plugin now, but for the moment I'm leaving it in
Expand Down
16 changes: 6 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<groupId>com.programmerdan.minecraft</groupId>
<artifactId>SimpleAdminHacks</artifactId>
<packaging>jar</packaging>
<version>1.2.4</version>
<version>1.3.0</version>
<name>SimpleAdminHacks</name>
<url>https://github.com/DevotedMC/SimpleAdminHacks</url>

Expand Down Expand Up @@ -89,10 +89,6 @@
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
</repository>
<repository>
<id>byteflux-repo</id>
<url>http://repo.byteflux.net/repository/maven-snapshots/</url>
</repository>
<repository>
<id>dmulloy2-repo</id>
<url>http://repo.dmulloy2.net/content/groups/public/</url>
Expand All @@ -107,7 +103,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.12.2-R0.1-SNAPSHOT</version>
<version>1.14.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -137,24 +133,24 @@
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib-API</artifactId>
<version>4.3.0</version>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.namelayer</groupId>
<artifactId>NameLayer</artifactId>
<version>2.11.0</version>
<version>2.12.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.citadel</groupId>
<artifactId>Citadel</artifactId>
<version>3.9.0</version>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.civmodcore</groupId>
<artifactId>CivModCore</artifactId>
<version>1.6.0</version>
<version>1.7.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.programmerdan.minecraft.simpleadminhacks;

import java.lang.reflect.Field;
import java.util.logging.Level;

import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;

/**
* Utility automating a lot of the boiler plate required by SimpleHack and thus allowing easier creation
* of small hacks
*
*/
public abstract class BasicHack extends SimpleHack<BasicHackConfig> implements Listener {

public BasicHack(SimpleAdminHacks plugin, BasicHackConfig config) {
super(plugin, config);
}

@Override
public void registerListeners() {
SimpleAdminHacks.instance().registerListener(this);
}

@Override
public void registerCommands() {
//override in subclass if needed
}

@Override
public void dataBootstrap() {
//override in subclass if needed
}

@Override
public void unregisterListeners() {
HandlerList.unregisterAll(this);

}

@Override
public void unregisterCommands() {
//override in subclass if needed
}

@Override
public void dataCleanup() {
//override in subclass if needed

}

@Override
public String status() {
StringBuilder genStatus = new StringBuilder();
genStatus.append(this.getClass().getSimpleName());
genStatus.append(" is ");
if (config == null || !config.isEnabled()) {
genStatus.append("disabled");
return genStatus.toString();
}
genStatus.append("enabled\n");
for(Field field : this.getClass().getDeclaredFields()) {
genStatus.append(field.getName());
genStatus.append(" = ");
field.setAccessible(true);
try {
genStatus.append(field.get(this));
} catch (IllegalArgumentException | IllegalAccessException e) {
plugin().log(Level.WARNING, "Failed to read field", e);
}
genStatus.append('\n');
}
return genStatus.toString();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.programmerdan.minecraft.simpleadminhacks;

import org.bukkit.configuration.ConfigurationSection;

public class BasicHackConfig extends SimpleHackConfig {

public BasicHackConfig(SimpleAdminHacks plugin, ConfigurationSection base) {
super(plugin, base);
}

@Override
protected void wireup(ConfigurationSection config) {
//not needed
}

public static BasicHackConfig generate(SimpleAdminHacks plugin, ConfigurationSection config) {
return new BasicHackConfig(plugin, config);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private boolean showHacks(CommandSender sender) {

sb.append(ChatColor.WHITE).append("List of hacks:\n");

for (SimpleHack<?> hack : plugin.getHacks()) {
for (SimpleHack<?> hack : plugin.getHackManager().getHacks()) {
sb.append(" ")
.append(ChatColor.AQUA).append(hack.getName())
.append(ChatColor.WHITE).append(": ");
Expand All @@ -87,7 +87,7 @@ private boolean showHacks(CommandSender sender) {
* Internal utility to get a hack from name.
*/
private SimpleHack<?> findHack(String hackName) {
for (SimpleHack<?> candidate : plugin.getHacks()) {
for (SimpleHack<?> candidate : plugin.getHackManager().getHacks()) {
if (candidate.getName().equals(hackName)) {
return candidate;
}
Expand Down
Loading