Skip to content
This repository has been archived by the owner on Mar 4, 2023. It is now read-only.

Commit

Permalink
Merge pull request #8 from rettichlp/develop
Browse files Browse the repository at this point in the history
v1.0.0-beta.2
  • Loading branch information
rettichlp committed Jun 14, 2022
2 parents 3a644de + 27e851d commit 79f27dc
Show file tree
Hide file tree
Showing 10 changed files with 128 additions and 91 deletions.
7 changes: 2 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
name: Gradle release
name: Release

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:
Expand All @@ -22,7 +19,7 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew downloadAPI shadowJar
run: ./gradlew downloadAPI build
- name: Upload jar
uses: actions/upload-artifact@v1
with:
Expand Down
6 changes: 1 addition & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ apply plugin: 'maven-publish'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'com.github.johnrengelman.shadow'

version = '1.0.0'
version = '1.0.0-beta.2'
group = 'com.rettichlp.UnicacityAddon' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'UnicacityAddon'

Expand Down Expand Up @@ -94,7 +94,6 @@ dependencies {
compile("net.minecraft:launchwrapper:1.12") { transitive = false }

implementation 'org.jetbrains:annotations:23.0.0'
implementation 'org.reflections:reflections:0.10.2'
}

jar {
Expand All @@ -112,7 +111,4 @@ task downloadAPI(type: Download) {

src "https://dl.labymod.net/latest/api/files/lm_api_mc1.16.5.jar"
dest 'libs/'

// src "https://github.com/ronmamo/reflections/releases/download/0.10.2/reflections-0.10.2.jar"
// dest 'libs/'
}
23 changes: 16 additions & 7 deletions src/main/java/com/rettichlp/UnicacityAddon/UnicacityAddon.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package com.rettichlp.UnicacityAddon;

import com.rettichlp.UnicacityAddon.base.abstraction.AbstractionLayer;
import com.rettichlp.UnicacityAddon.base.command.UCCommandHandler;
import com.rettichlp.UnicacityAddon.base.config.ConfigSettings;
import com.rettichlp.UnicacityAddon.base.event.UCEventHandler;
import com.rettichlp.UnicacityAddon.base.faction.FactionHandler;
import com.rettichlp.UnicacityAddon.base.module.UCModuleHandler;
import com.rettichlp.UnicacityAddon.events.ATMInfoEventHandler;
import com.rettichlp.UnicacityAddon.events.BombTimerEventHandler;
import com.rettichlp.UnicacityAddon.events.NameTagEventHandler;
import com.rettichlp.UnicacityAddon.modules.BombTimerModule;
import net.labymod.api.LabyModAddon;
import net.labymod.ingamegui.ModuleCategoryRegistry;
import net.labymod.settings.elements.SettingsElement;
Expand All @@ -15,24 +20,28 @@
*/
public class UnicacityAddon extends LabyModAddon {

public static final String VERSION = "1.0.0-beta";
public static final String VERSION = "1.0.0-beta.2";
public static UnicacityAddon ADDON;

@Override
public void onEnable() {
ADDON = this;

UCEventHandler.registerEvents();
UCModuleHandler.registerModules();

FactionHandler.getPlayerFactionMap();
FactionHandler.getPlayerRankMap();
// UCEventHandler.registerEvents();
AbstractionLayer.getLabymod().getEventService().registerListener(new UCCommandHandler());
AbstractionLayer.getLabymod().getEventService().registerListener(new ATMInfoEventHandler());
AbstractionLayer.getLabymod().getEventService().registerListener(new BombTimerEventHandler());
AbstractionLayer.getLabymod().getEventService().registerListener(new NameTagEventHandler());

//UCModuleHandler.registerModules();
ModuleCategoryRegistry.loadCategory(UCModuleHandler.UNICACITY);
AbstractionLayer.getLabymod().getApi().registerModule(new BombTimerModule());
}

@Override
public void loadConfig() {
FactionHandler.getPlayerFactionMap();
FactionHandler.getPlayerRankMap();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package com.rettichlp.UnicacityAddon.base.command;

import com.rettichlp.UnicacityAddon.UnicacityAddon;
import com.rettichlp.UnicacityAddon.base.abstraction.AbstractionLayer;
import com.rettichlp.UnicacityAddon.base.event.UCEvent;
import com.rettichlp.UnicacityAddon.base.reflection.ReflectionUtils;
import com.rettichlp.UnicacityAddon.base.text.ColorCode;
import com.rettichlp.UnicacityAddon.base.text.Message;
import net.labymod.api.event.Subscribe;
import net.labymod.api.event.events.client.chat.MessageSendEvent;
import org.reflections.Reflections;
import org.reflections.scanners.Scanners;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
Expand All @@ -18,8 +16,6 @@
import java.util.List;
import java.util.Map;

import static org.reflections.scanners.Scanners.MethodsAnnotated;

/**
* @author RettichLP
*/
Expand Down Expand Up @@ -67,11 +63,9 @@ public void onMessageSend(MessageSendEvent e) {
private Map<String, Method> getCommandMap() {
Map<String, Method> commandMap = new HashMap<>();

Reflections reflections = new Reflections(UnicacityAddon.class.getPackage().getName(), Scanners.values());
reflections.get(MethodsAnnotated.with(UCCommand.class).as(Method.class)).forEach(method -> {
ReflectionUtils reflectionUtils = new ReflectionUtils("com.rettichlp.UnicacityAddon.commands");
reflectionUtils.getMethodsAnnotatedWith(UCCommand.class).forEach(method -> {
UCCommand ucCommand = method.getAnnotation(UCCommand.class);
System.out.println(Arrays.toString(ucCommand.value()));

for (int i = 0; i < ucCommand.value().length; i++) {
commandMap.put(ucCommand.value()[i], method);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
package com.rettichlp.UnicacityAddon.base.event;

import com.rettichlp.UnicacityAddon.UnicacityAddon;
import com.rettichlp.UnicacityAddon.base.abstraction.AbstractionLayer;
import org.reflections.Reflections;
import org.reflections.scanners.Scanners;

import java.util.Set;

import static org.reflections.scanners.Scanners.TypesAnnotated;
import com.rettichlp.UnicacityAddon.base.reflection.ReflectionUtils;

/**
* @author RettichLP
*/
public class UCEventHandler {

public static void registerEvents() {
Reflections reflections = new Reflections(UnicacityAddon.class.getPackage().getName(), Scanners.values());
Set<Class<?>> events = reflections.get(TypesAnnotated.with(UCEvent.class).asClass());

events.forEach(clazz -> {
ReflectionUtils reflectionUtils = new ReflectionUtils("com.rettichlp.UnicacityAddon.events");
reflectionUtils.getClassesAnnotatedWith(UCEvent.class).forEach(clazz -> {
try {
AbstractionLayer.getLabymod().getEventService().registerListener(clazz.newInstance());
} catch (InstantiationException | IllegalAccessException e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
package com.rettichlp.UnicacityAddon.base.module;

import com.rettichlp.UnicacityAddon.UnicacityAddon;
import com.rettichlp.UnicacityAddon.base.abstraction.AbstractionLayer;
import com.rettichlp.UnicacityAddon.base.reflection.ReflectionUtils;
import net.labymod.ingamegui.Module;
import net.labymod.ingamegui.ModuleCategory;
import net.labymod.settings.elements.ControlElement;
import net.labymod.utils.Material;
import org.reflections.Reflections;
import org.reflections.scanners.Scanners;

import java.util.Set;

import static org.reflections.scanners.Scanners.TypesAnnotated;

/**
* @author RettichLP
Expand All @@ -21,10 +15,8 @@ public class UCModuleHandler {
public static final ModuleCategory UNICACITY = new ModuleCategory("Unicacity", true, new ControlElement.IconData(Material.DIAMOND));

public static void registerModules() {
Reflections reflections = new Reflections(UnicacityAddon.class.getPackage().getName(), Scanners.values());
Set<Class<?>> events = reflections.get(TypesAnnotated.with(UCModule.class).asClass());

events.forEach(clazz -> {
ReflectionUtils reflectionUtils = new ReflectionUtils("com.rettichlp.UnicacityAddon.modules");
reflectionUtils.getClassesAnnotatedWith(UCModule.class).forEach(clazz -> {
try {
AbstractionLayer.getLabymod().getApi().registerModule((Module) clazz.newInstance());
} catch (InstantiationException | IllegalAccessException e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.rettichlp.UnicacityAddon.base.reflection;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class ReflectionUtils {

private String inPackage;

public ReflectionUtils(String inPackage) {
this.inPackage = inPackage;
}

public List<Class> getClassesAnnotatedWith(Class<?> annotation) {
return getAllClasses().stream().filter(aClass -> {
Arrays.stream(aClass.getAnnotations()).filter(annotation1 -> annotation1.annotationType().equals(annotation));
return true;
}).collect(Collectors.toList());
}

public List<Method> getMethodsAnnotatedWith(Class<?> annotation) {
List<Method> methods = new ArrayList<>();
getAllClasses().forEach(clazz -> Arrays.asList(clazz.getMethods()).forEach(method -> {
if (Arrays.asList(method.getAnnotations()).contains(annotation))
methods.add(method);
}));
return methods;
}

private Set<Class> getAllClasses() {
InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream(inPackage.replaceAll("[.]", "/"));
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
return reader.lines().filter(line -> line.endsWith(".class")).map(line -> getClass(line, inPackage)).collect(Collectors.toSet());
}

private Class getClass(String className, String packageName) {
try {
return Class.forName(packageName + "." + className.substring(0, className.lastIndexOf('.')));
} catch (ClassNotFoundException e) {
e.getCause().printStackTrace();
}
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.rettichlp.UnicacityAddon.events;

import com.rettichlp.UnicacityAddon.base.event.UCEvent;
import com.rettichlp.UnicacityAddon.base.text.ColorCode;
import com.rettichlp.UnicacityAddon.base.text.PatternHandler;
import com.rettichlp.UnicacityAddon.modules.BombTimerModule;
import net.labymod.api.event.Subscribe;
import net.labymod.api.event.events.client.TickEvent;
import net.labymod.api.event.events.client.chat.MessageReceiveEvent;
import net.labymod.utils.ModUtils;

@UCEvent
public class BombTimerEventHandler {

@Subscribe
public void onTick(TickEvent event) {
if (event.getPhase() != TickEvent.Phase.POST) return;

if (!BombTimerModule.isBomb || ++BombTimerModule.currentTick != 20) return;
BombTimerModule.currentTick = 0;

if (BombTimerModule.currentCount++ >= 780) BombTimerModule.timer = ColorCode.RED.getCode() + ModUtils.parseTimer(BombTimerModule.currentCount);
else BombTimerModule.timer = ModUtils.parseTimer(BombTimerModule.currentCount);
}

@Subscribe
public void onMesageReceive(MessageReceiveEvent e) {
String msg = e.getComponent().getString();

if (PatternHandler.BOMB_PLACED_PATTERN.matcher(msg).find()) {
BombTimerModule.isBomb = true;
BombTimerModule.timer = "00:00";
return;
}

if (PatternHandler.BOMB_REMOVED_PATTERN.matcher(msg).find()) {
BombTimerModule.isBomb = false;
BombTimerModule.currentCount = 0;
BombTimerModule.timer = "";
}
}
}
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
package com.rettichlp.UnicacityAddon.modules;

import com.rettichlp.UnicacityAddon.base.abstraction.AbstractionLayer;
import com.rettichlp.UnicacityAddon.base.event.UCEvent;
import com.rettichlp.UnicacityAddon.base.module.UCModule;
import com.rettichlp.UnicacityAddon.base.module.UCModuleHandler;
import com.rettichlp.UnicacityAddon.base.text.ColorCode;
import com.rettichlp.UnicacityAddon.base.text.PatternHandler;
import net.labymod.api.event.Subscribe;
import net.labymod.api.event.events.client.TickEvent;
import net.labymod.api.event.events.client.chat.MessageReceiveEvent;
import net.labymod.ingamegui.ModuleCategory;
import net.labymod.ingamegui.moduletypes.SimpleModule;
import net.labymod.settings.elements.ControlElement;
import net.labymod.utils.Material;
import net.labymod.utils.ModUtils;

@UCModule
@UCEvent
public class BombTimerModule extends SimpleModule {

private int currentCount = 0;
private int currentTick = 0;
private static boolean isBomb = false;
private String timer = "";
public static int currentCount = 0;
public static int currentTick = 0;
public static boolean isBomb = false;
public static String timer = "";

public BombTimerModule() {
AbstractionLayer.getLabymod().getEventService().registerListener(this);
Expand All @@ -41,7 +33,7 @@ public BombTimerModule() {
}

@Override public String getDisplayValue() {
return this.timer;
return timer;
}

@Override public String getDefaultValue() {
Expand All @@ -61,7 +53,7 @@ public BombTimerModule() {
}

@Override public boolean isShown() {
return !this.timer.isEmpty();
return !timer.isEmpty();
}

@Override public int getSortingId() {
Expand All @@ -70,32 +62,4 @@ public BombTimerModule() {

@Override public void loadSettings() {
}

@Subscribe
public void onTick(TickEvent event) {
if (event.getPhase() != TickEvent.Phase.POST) return;

if (!isBomb || ++this.currentTick != 20) return;
this.currentTick = 0;

if (this.currentCount++ >= 780) this.timer = ColorCode.RED.getCode() + ModUtils.parseTimer(this.currentCount);
else this.timer = ModUtils.parseTimer(this.currentCount);
}

@Subscribe
public void onMesageReceive(MessageReceiveEvent e) {
String msg = e.getComponent().getString();

if (PatternHandler.BOMB_PLACED_PATTERN.matcher(msg).find()) {
isBomb = true;
this.timer = "00:00";
return;
}

if (PatternHandler.BOMB_REMOVED_PATTERN.matcher(msg).find()) {
isBomb = false;
this.currentCount = 0;
this.timer = "";
}
}
}
2 changes: 1 addition & 1 deletion src/main/resources/addon.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"version": 1,
"author": "RettichLP",
"category": 3,
"icon": "https://i.imgur.com/kvc4Tpd.png"
"icon": "https://i.imgur.com/GT5bHRz.jpg"
}

0 comments on commit 79f27dc

Please sign in to comment.