Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ plugins {
}

// Core versioning
version = "0.5.2b2"
version = "0.5.2b3"

allprojects {
apply from: "${rootDir}/gradle/tasks.gradle"
Expand Down
2 changes: 1 addition & 1 deletion gradle-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ repositories {
gradlePluginPortal()
}

version = "1.0.1b4"
version = "1.0.1b5"

apply plugin: "java-gradle-plugin"
apply plugin: "maven-publish"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public FairyExtension(ObjectFactory objectFactory) {
this.fairyPlatforms = objectFactory.listProperty(PlatformType.class).convention(Collections.singleton(PlatformType.BUKKIT));

// Libraries
this.aspectJVersion = objectFactory.property(String.class).convention("1.8.7");
this.aspectJVersion = objectFactory.property(String.class).convention("1.9.7");

// Plugin
this.classifier = objectFactory.property(String.class).convention("all");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,10 @@ public void apply(@NotNull Project project) {
}

try {
new ModuleReader(project, extension, fairyModuleConfiguration, copy, new HashSet<>()).load(moduleEntry.getKey(), dependency, new ArrayList<>());
new ModuleReader(project, extension, fairyModuleConfiguration, copy, new HashSet<>())
.load(moduleEntry.getKey(), dependency, new ArrayList<>());
} catch (IOException e) {
throw new IllegalArgumentException("An error occurs while reading dependency");
throw new IllegalArgumentException("An error occurs while reading dependency", e);
}
}

Expand Down
5 changes: 3 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

jackson.version = 2.11.2
caffeine.version = 2.9.0
aspectj.version = 1.8.7
aspectj.version = 1.9.7
guava.version = 30.0-jre
gson.version = 2.8.6
log4j.version = 2.15.0
Expand All @@ -38,4 +38,5 @@ deploy.imanityLibraries = true

# Minecraft
adventure.version = 4.9.3
netty.version = 4.1.69.Final
netty.version = 4.1.69.Final
packetevents.version = v2.0.0-beta-1
2 changes: 2 additions & 0 deletions gradle/builder.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ project.afterEvaluate(p -> {
shadowJar {
// XSeries
exclude("com/cryptomorin/xseries/messages/*")

relocate("com.github.retrooper.packetevents", "io.fairyproject.protocol.packetevents")
relocate("com.cryptomorin.xseries", "io.fairyproject.bukkit.xseries")

relocate "net.kyori", relocate + "kyori"
Expand Down
8 changes: 8 additions & 0 deletions gradle/tasks.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import com.google.common.io.Files
import io.fairyproject.gradle.ExtensionUtil
import io.fairyproject.gradle.FairyVersion
import org.gradle.internal.jvm.Jvm
import org.yaml.snakeyaml.Yaml

abstract class VersionModificationTask extends DefaultTask {
Expand Down Expand Up @@ -95,6 +96,12 @@ abstract class RunDebugBukkit extends DefaultTask {
"#Tue Jun 22 20:59:57 ICT 2021\n" +
"eula=true\n")

if (Jvm.current().javaVersion.ordinal() > 8)
project.tasks.execBukkit.jvmArgs = [
"--add-opens", "java.base/java.net=ALL-UNNAMED",
"--add-opens", "java.base/java.lang=ALL-UNNAMED",
"--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED"
]
project.tasks.execBukkit.mainClass.set("-jar")
project.tasks.execBukkit.args = [
file.toPath().toString()
Expand Down Expand Up @@ -140,6 +147,7 @@ abstract class RunDebugApp extends DefaultTask {
project.tasks.execApp.args = [
file.toPath().toString()
]

project.tasks.execApp.standardInput = System.in
project.tasks.execApp.workingDir("debug/app")
}
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public class GameModeArgTransformer extends BukkitArgTransformer<GameMode> {
MAP.put("adventure", GameMode.ADVENTURE);
MAP.put("2", GameMode.ADVENTURE);

if (MCProtocol.INSTANCE.getProtocolMapping().getVersion().isOrAbove(MCVersion.V1_8)) {
if (MCProtocol.INSTANCE.version().isOrAbove(MCVersion.V1_8)) {
MAP.put("spectator", GameMode.SPECTATOR);
MAP.put("3", GameMode.SPECTATOR);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module {
abstraction = true

platform("mc")

depend("module.config")
depend("module.storage:core-storage")
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import io.fairyproject.container.ContainerHolder;
import lombok.experimental.UtilityClass;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.Template;

import java.util.Locale;
import java.util.UUID;
Expand Down Expand Up @@ -70,8 +69,4 @@ public Component translate(String key) {
return Component.translatable(key);
}

public Template template(String placeholder, String localeKey) {
return Template.template(placeholder, Component.translatable(localeKey));
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "0.0.1b1"
version = "0.0.1b2"

dependencies {
compileOnly project.spigot()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "0.0.1b1"
version = "0.0.1b2"

module {
platform("mc")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,9 @@ public void onPlayerQuit(MCPlayerQuitEvent event) {
if (nameTag != null) {
nameTag.removeName(name);
list.removeNameTag(name);

other.sendPacket(PacketPlay.Out.ScoreboardTeam.builder()
.player(nameTag.getName())
.players(nameTag.getName())
.players(Collections.singleton(name))
.teamAction(TeamAction.LEAVE)
.build());
Expand Down Expand Up @@ -154,7 +155,7 @@ private void updateForInternal(MCPlayer player, MCPlayer target) {

list.addNameTag(target.getName(), nametag);
player.sendPacket(PacketPlay.Out.ScoreboardTeam.builder()
.player(nametag.getName())
.players(nametag.getName())
.players(Collections.singleton(target.getName()))
.teamAction(TeamAction.JOIN)
.build());
Expand Down Expand Up @@ -185,7 +186,7 @@ protected NameTag getOrCreate(Component prefix, Component suffix) {

private void sendPacket(MCPlayer mcPlayer, NameTag info) {
mcPlayer.sendPacket(PacketPlay.Out.ScoreboardTeam.builder()
.player(info.getName())
.players(info.getName())
.teamAction(TeamAction.ADD)
.parameters(Optional.of(PacketPlay.Out.ScoreboardTeam.Parameters.builder()
.playerPrefix(info.getPrefix())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "0.0.1b3"
version = "0.0.1b4"

module {
platform("mc")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public Sidebar(MCPlayer player) {
.displaySlot(ObjectiveDisplaySlot.SIDEBAR)
.objectiveName(player.getName())
.build());

}

public void setTitle(Component title) {
Expand Down Expand Up @@ -163,7 +164,7 @@ public void remove() {
}

private PacketPlay.Out.ScoreboardTeam getOrRegisterTeam(int line) {
final PacketPlay.Out.ScoreboardTeam.ScoreboardTeamBuilder builder = PacketPlay.Out.ScoreboardTeam.builder();
final PacketPlay.Out.ScoreboardTeam.Factory builder = PacketPlay.Out.ScoreboardTeam.builder();
builder.name("-sb" + line);
builder.teamAction(TeamAction.ADD);

Expand All @@ -182,7 +183,7 @@ private PacketPlay.Out.ScoreboardTeam getOrRegisterTeam(int line) {
.build();

builder.teamAction(TeamAction.ADD);
builder.player(getEntry(line));
builder.players(getEntry(line));
this.player.sendPacket(score);

return builder.build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "0.0.2b2"
version = "0.0.2b3"

module {
platform("mc")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private void setup() {
.playerPrefix(Component.empty())
.playerSuffix(Component.empty())
.build()))
.player(LegacyClientUtil.entry(i - 1))
.players(LegacyClientUtil.entry(i - 1))
.build();

player.sendPacket(packet);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public class MainTablistImpl implements TablistImpl {
public void removeSelf(MCPlayer player) {
final PacketPlay.Out.PlayerInfo playerInfo = PacketPlay.Out.PlayerInfo.builder()
.action(io.fairyproject.mc.protocol.item.PlayerInfoAction.REMOVE_PLAYER)
.entry(MCPlayer.from(player).asInfoData())
.entries(MCPlayer.from(player).asInfoData())
.build();

MCPlayer.all().forEach(mcPlayer -> mcPlayer.sendPacket(playerInfo));
Expand All @@ -72,7 +72,7 @@ public TabEntry createFakePlayer(Tablist tablist, String string, TabColumn colum

final PacketPlay.Out.PlayerInfo packet = PacketPlay.Out.PlayerInfo.builder()
.action(io.fairyproject.mc.protocol.item.PlayerInfoAction.ADD_PLAYER)
.entry(new PlayerInfoData(1, profile, io.fairyproject.mc.GameMode.SURVIVAL, Component.empty()))
.entries(new PlayerInfoData(1, profile, io.fairyproject.mc.GameMode.SURVIVAL, Component.empty()))
.build();
player.sendPacket(packet);
return new TabEntry(string, profile.getUuid(), Component.empty(), tablist, Skin.GRAY, column, slot, rawSlot, 0);
Expand All @@ -96,15 +96,15 @@ public void updateFakeName(Tablist tablist, TabEntry tabEntry, Component text) {
.playerPrefix(MCAdventure.LEGACY.deserialize(newStrings[0]))
.playerPrefix(MCAdventure.LEGACY.deserialize(newStrings.length > 1 ? CC.translate(newStrings[1]) : ""))
.build()))
.player(LegacyClientUtil.entry(tabEntry.getRawSlot() - 1))
.players(LegacyClientUtil.entry(tabEntry.getRawSlot() - 1))
.teamAction(TeamAction.CHANGE)
.build();

player.sendPacket(packet);
} else {
final PacketPlay.Out.PlayerInfo packet = PacketPlay.Out.PlayerInfo.builder()
.action(PlayerInfoAction.UPDATE_DISPLAY_NAME)
.entry(new PlayerInfoData(tabEntry.getLatency(), this.getGameProfile(version, tabEntry), GameMode.SURVIVAL, text))
.entries(new PlayerInfoData(tabEntry.getLatency(), this.getGameProfile(version, tabEntry), GameMode.SURVIVAL, text))
.build();

player.sendPacket(packet);
Expand All @@ -120,7 +120,7 @@ public void updateFakeLatency(Tablist tablist, TabEntry tabEntry, int latency) {
final MCVersion version = tablist.getPlayer().getVersion();
final PacketPlay.Out.PlayerInfo packet = PacketPlay.Out.PlayerInfo.builder()
.action(PlayerInfoAction.UPDATE_LATENCY)
.entry(new PlayerInfoData(tabEntry.getLatency(), this.getGameProfile(version, tabEntry), GameMode.SURVIVAL, tabEntry.getText()))
.entries(new PlayerInfoData(tabEntry.getLatency(), this.getGameProfile(version, tabEntry), GameMode.SURVIVAL, tabEntry.getText()))
.build();

tablist.getPlayer().sendPacket(packet);
Expand All @@ -147,11 +147,11 @@ public void updateFakeSkin(Tablist tablist, TabEntry tabEntry, Skin skin) {
final PlayerInfoData playerInfoData = new PlayerInfoData(tabEntry.getLatency(), gameProfile, GameMode.SURVIVAL, tabEntry.getText());
final PacketPlay.Out.PlayerInfo remove = PacketPlay.Out.PlayerInfo.builder()
.action(PlayerInfoAction.REMOVE_PLAYER)
.entry(playerInfoData)
.entries(playerInfoData)
.build();
final PacketPlay.Out.PlayerInfo add = PacketPlay.Out.PlayerInfo.builder()
.action(PlayerInfoAction.ADD_PLAYER)
.entry(playerInfoData)
.entries(playerInfoData)
.build();

tablist.getPlayer().sendPacket(remove);
Expand Down
1 change: 1 addition & 0 deletions io.fairyproject.platforms/bukkit-platform/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import org.apache.tools.ant.filters.ReplaceTokens
dependencies {
api project(":io.fairyproject.platforms:mc-platform")

implementation 'com.github.terminalsin.packetevents:spigot:' + findProperty("packetevents.version")
implementation "net.kyori:adventure-platform-bukkit:4.0.1"

compileOnly "com.destroystokyo.paper:paper-api:" + findProperty("bukkit.version")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

package io.fairyproject.bukkit;

import com.github.retrooper.packetevents.PacketEvents;
import io.fairyproject.ExtendedClassLoader;
import io.fairyproject.FairyPlatform;
import io.fairyproject.bukkit.events.PostServicesInitialEvent;
Expand All @@ -42,6 +43,7 @@
import io.fairyproject.task.ITaskScheduler;
import io.fairyproject.util.terminable.TerminableConsumer;
import io.fairyproject.util.terminable.composite.CompositeTerminable;
import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Expand Down Expand Up @@ -86,6 +88,8 @@ public void load() {
PluginManager.initialize(new BukkitPluginHandler());
ModuleService.init();
MinecraftReflection.init();
PacketEvents.setAPI(SpigotPacketEventsBuilder.build(PLUGIN));
PacketEvents.getAPI().load();
this.createMCInitializer().apply();
}

Expand All @@ -98,10 +102,14 @@ public void enable() {

super.enable();
ModuleService.INSTANCE.enable();
PacketEvents.getAPI().getSettings().debug(false).bStats(false).checkForUpdates(true);
PacketEvents.getAPI().init();
}

@Override
public void disable() {
PacketEvents.getAPI().terminate();

super.disable();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package io.fairyproject.bukkit.mc;

import com.github.retrooper.packetevents.PacketEventsAPI;
import io.fairyproject.bukkit.FairyBukkitPlatform;
import io.fairyproject.bukkit.protocol.BukkitNettyInjector;
import io.fairyproject.bukkit.util.Players;
import io.fairyproject.mc.*;
import io.fairyproject.mc.protocol.mapping.MCProtocolMapping;
import io.fairyproject.mc.protocol.mapping.MCProtocolMapping1_8;
import io.fairyproject.mc.protocol.netty.NettyInjector;
import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

Expand All @@ -21,8 +22,8 @@ public NettyInjector createNettyInjector() {
}

@Override
public MCProtocolMapping createProtocolMapping() {
return new MCProtocolMapping1_8(); // TODO
public PacketEventsAPI<?> createPacketEvents() {
return SpigotPacketEventsBuilder.build(FairyBukkitPlatform.PLUGIN);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@
import io.fairyproject.plugin.PluginListenerAdapter;
import io.fairyproject.plugin.PluginManager;
import io.fairyproject.util.FairyThreadFactory;
import io.fairyproject.util.FileUtil;
import io.fairyproject.util.Stacktrace;
import io.fairyproject.util.URLClassLoaderAccess;
import lombok.Getter;
import org.apache.commons.io.FilenameUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
Expand Down Expand Up @@ -236,8 +236,8 @@ private List<Path> remapLibrary(Library library, List<Path> normalFile) {
List<Path> retVal = new ArrayList<>();
for (Path path : normalFile) {
final String name = path.getFileName().toString();
final String fileName = FilenameUtils.getName(name);
final String extension = FilenameUtils.getExtension(name);
final String fileName = FileUtil.getName(name);
final String extension = FileUtil.getExtension(name);
Path remappedFile = this.libFolder.resolve(fileName + "-remapped." + extension);

if (Files.exists(remappedFile)) {
Expand Down
Loading