catmoe / blessing Goto Github PK
View Code? Open in Web Editor NEWRecoding of MoeFilter. A utility created for Minecraft: Java Edition server/proxy.
License: GNU General Public License v3.0
Recoding of MoeFilter. A utility created for Minecraft: Java Edition server/proxy.
License: GNU General Public License v3.0
Currently, the protocol module only provides decoding as a server. If we can use it for clients (for example, make tools for requesting other server status.). It could be more useful.
我在 7b8c2c2 提交中引入了iptables & ipset支持 但我目前没有合适的压力测试和众多的ip源(我有但我不清楚它们甚至能不能达到服务器). 故此打开issue 在此处查看关于此功能的进展
如果您想测试 请联系我以获得构建包. 此功能可能有一定的不稳定性 使用前请确保您有备用手段回滚MoeFilter对您的ipset&iptables策略所做的更改.
非紧急情况下不要强制关闭服务器 这会导致iptables无法被正确卸载
todo:
IPTables & IPSet 是硬编码的 我还不是很熟悉它们 如果您发现了语法错误或者可以改善的地方 请打开一个拉取请求. 初始化命令和卸载命令位于 OSFirewallLoader.kt.
为了避免因为iptables以及ipset消耗殆尽的问题 我们需要更高级的scheduler和自动分配其重复延迟. 这可能会在以后会进一步实施 但实际上目前mcstorm已不可用 并且我不知道能从其它地方找到更好的压力源进行测试.
核心:waterfall-1.20-559.jar
插件版本0.15
BC核心版本 1.20
客户端版本1.8.9
问题:在玩家进入第一个Ping检测后无限循环 后面调整配置为Rejoin后也是无限循环
所有消息使用数据包和缓存并添加跨版本支持. 以达到真正高性能的目的.
How to reproduce:
MixedComponent("<aqua> <b>Test</b> <i>Test</i> <u>Test</u> <obf>Test</obf>".toComponent())
Send it to the client. The client will be disconnect:
written from json:
io.netty.handler.codec.DecoderException: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 5
written from nbt:
Failed to decode: No matching codec found; No matching codec found; No matching codec found; List must have contents\n{color:"aqua",extra:[{},text:"Test"},{"":" "},{},{text:"Test"},{"":" "},{}],text:"Test"
在limbo内发送地图验证码以执行检查 同时增强Chcker逻辑 使其兼容多检查并发.
此条目需要更多信息
已知可能会导致内存泄漏的类和 方法/Field (嫌疑顺序从上到下):
catmoe.fallencrystal.moefilter.common.check.misc.ProxyCheck
: increase()
catmoe.fallencrystal.moefilter.api.proxy
: cache
catmoe.fallencrystal.moefilter.common.firewall.Firewall
: cache
catmoe.fallencrystal.moefilter.common.firewall.Throttler
: ipCache
catmoe.fallencrystal.moefilter.common.firewall.system.ExecutorHelper
: init()
catmoe.fallencrystal.moefilter.common.firewall.system.ExecutorHelper
: queue
catmoe.fallencrystal.moefilter.common.firewall.system.ExecutorHelper
: activeThread
catmoe.fallencrystal.moefilter.common.firewall.system.ExecutorHelper
: intThread
catmoe.fallencrystal.moefilter.common.state.StateManager
: attackEndedDetector()
如题 安装了MoeFiler后 过了frist join检测 使用AjQueue的命令/queue Lobbys 进入的第一秒被提出并且玩家显示disconnected
如果要视频请加我的qq3218153361
jpremium总是使用反射来获取InitialHandler中的uniqueid (uuid)
但MoeFilter自己的InitialHandler没有这个值
我不确定能不能修补它 我期望JPremium自己能修补这点.
如果您正在被此问题困扰 请查看最后一条comment
如题,现在的component格式mc百科不支持而且不到啥时候会支持。
使用MoeFiler DosHacker Free压测方案 虽然防住了 但是服务器直接崩溃 玩家无法进入
家宽 5900x 但是在压测的时候宽带是够的 压测了一段时间会卡 然后崩溃
MiniMessage虽然很好玩 但处理比传统的符号还要花上不少时间
等会会尝试给已经colorized过的消息加个缓存来记录.
Try to implement motd caching directly without implementing limbo. (Send motd packets directly on PacketHandler. No need to call listener is required. Even do not need to go through the InitialHandler)
TODO:
需要更多关于群戏的东西来让Limbo完全正常工作.
thats how it goes.
im currently having some difficulties. velocity's ChatEvent
does not provide which category the message belongs to (chat, command, agent, etc..). But BungeeCord is different. BungeeCord will offer 'isProxyCommand' and 'isCommand'. so just need to play some logic games. we can then know who the audience for this message is.
although BungeeCord doesnt actually implement them either(very simple judgment. just like they build proxies do). this is extremely dependent on the current platform. implementing them requires complex processing. so im not quite sure if im worth doing those.
*: the reason this event is really hard to implement is to get the command and its permissions. because if the player doesnt have permissions. their commands will be directly send to the backend.
Client-side:
Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException:
Packet 0/40 (ClientboundLoginPacket) was larger than I expected, found 3968 bytes extra whilst reading packet 40 (0x28)
Server-side:
[MoeLimbo] Decoding packet 0x00 (PacketHandshake) for version UNDEFINED with 15 bytes length
[MoeLimbo] Decoding packet 0x00 (PacketHandshake) for version UNDEFINED with 15 bytes length
[MoeLimbo] Processing Handshake: Version: V1_20, State: LOGIN, Connection from 127.0.0.1:25577
[MoeLimbo] Encoder mappings refreshed. Now switch to state LOGIN for version V1_20
[MoeLimbo] Decoder mappings refreshed. Now switch to state LOGIN for version V1_20
[MoeLimbo] Decoding packet 0x00 (PacketInitLogin) for version V1_20 with 27 bytes length
[MoeLimbo] Processing Handshake: Version: V1_20, State: STATUS, Connection from 127.0.0.1:25577
[MoeLimbo] Encoder mappings refreshed. Now switch to state STATUS for version V1_20
[MoeLimbo] Decoder mappings refreshed. Now switch to state STATUS for version V1_20
[MoeLimbo] Decoding packet 0x00 (PacketStatusRequest) for version V1_20 with 0 bytes length
[MoeLimbo] Encoding packet 0x02 (PacketLoginSuccess) for version V1_20 with 27 bytes length
[MoeLimbo] Encoder mappings refreshed. Now switch to state PLAY for version V1_20
[MoeLimbo] Decoder mappings refreshed. Now switch to state PLAY for version V1_20
[MoeLimbo] Encoding packet 0x28 (PacketJoinGame) for version V1_20 with 41055 bytes length
[MoeLimbo] Encoding packet 0x00 (PacketPingResponse) for version V1_20 with 149 bytes length
[MoeLimbo] Decoding packet 0x01 (PacketStatusPing) for version V1_20 with 8 bytes length
[MoeLimbo] Encoding packet 0x34 (PacketPlayerAbilities) for version V1_20 with 10 bytes length
[MoeLimbo] Encoding packet 0x3C (PacketServerPositionLook) for version V1_20 with 39 bytes length
[MoeLimbo] Encoding packet 0x50 (PacketSpawnPosition) for version V1_20 with 13 bytes length
[MoeLimbo] Encoding packet 0x17 (PacketPluginMessage) for version V1_20 with 39 bytes length
[MoeLimbo] Encoding packet 0x24 (PacketEmptyChunk) for version V1_20 with 484 bytes length
[MoeLimbo] Encoding packet 0x23 (PacketKeepAlive) for version V1_20 with 9 bytes length
[MoeLimbo] Client disconnected.
Make MoeFilter pipeline compatible with BotFilter.
Packet:
Stone, Barrier
Antibot module:
The following content is written using Chinese. If you happen to need to read the content. Please use a translator.
这里是一堆问题集合在一起的问题. 它们可能有关目前MoeFilter会引起的插件错误 以及替代或解决方案.
如果您认为您要修正一些内容 或添加某些内容 请在 此处 打开一个新问题
java.lang.IllegalArgumentException: Cannot convert mixed JsonArray to Tag
at catmoe.fallencrystal.moefilter.network.limbo.compat.message.NbtMessage$Companion.fromJson(NbtMessage.kt:108)
at catmoe.fallencrystal.moefilter.network.limbo.compat.message.NbtMessage$Companion.fromJson(NbtMessage.kt:75)
at catmoe.fallencrystal.moefilter.network.limbo.compat.message.NbtMessage$Companion.create(NbtMessage.kt:46)
at catmoe.fallencrystal.moefilter.network.limbo.packet.s2c.PacketDisconnect.setMessage(PacketDisconnect.kt:32)
at catmoe.fallencrystal.moefilter.network.common.kick.FastDisconnect.getCacheReason(FastDisconnect.kt:111)
at catmoe.fallencrystal.moefilter.network.common.kick.FastDisconnect.initMessages(FastDisconnect.kt:99)
at catmoe.fallencrystal.moefilter.network.common.kick.FastDisconnect.reload(FastDisconnect.kt:87)
at catmoe.fallencrystal.moefilter.common.config.ReloadConfig.reloadConfig(ReloadConfig.kt:82)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at catmoe.fallencrystal.translation.event.EventManager.callEvent(EventManager.kt:90)
at catmoe.fallencrystal.moefilter.util.plugin.AsyncLoader.registerListener(AsyncLoader.kt:196)
at catmoe.fallencrystal.moefilter.util.plugin.AsyncLoader.load$lambda$2(AsyncLoader.kt:117)
at net.md_5.bungee.scheduler.BungeeTask.run(BungeeTask.java:66)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
Warning
Renovate failed to look up the following dependencies: Failed to look up maven package net.miaomoe.blessing:protocol
, Failed to look up maven package net.miaomoe.blessing:nbt
.
Files affected: fallback/pom.xml
, protocol/pom.xml
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
.github/workflows/test-build.yml
actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
actions/setup-java v4
actions/upload-artifact v4
bungee/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
net.kyori:adventure-text-minimessage 4.16.0
net.kyori:adventure-nbt 4.16.0
net.kyori:adventure-platform-bungeecord 4.3.2
com.github.ben-manes.caffeine:caffeine 2.9.3
io.github.waterfallmc:waterfall-api 1.20-R0.3-SNAPSHOT
config/pom.xml
org.apache.maven.plugins:maven-compiler-plugin 3.12.1
org.apache.maven.plugins:maven-shade-plugin 3.5.2
com.typesafe:config 1.4.3
org.projectlombok:lombok 1.18.30
org.jetbrains:annotations 24.1.0
event/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
com.github.ben-manes.caffeine:caffeine 2.9.3
fallback/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
net.miaomoe.blessing:protocol 0.0.1
net.miaomoe.blessing:nbt 0.0.1
net.kyori:adventure-nbt 4.16.0
net.kyori:adventure-text-minimessage 4.16.0
net.kyori:adventure-text-serializer-legacy 4.16.0
net.kyori:adventure-text-serializer-gson 4.16.0
io.netty:netty-all 4.1.107.Final
com.google.code.gson:gson 2.10.1
nbt/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
net.kyori:adventure-text-minimessage 4.16.0
net.kyori:adventure-text-serializer-gson 4.16.0
net.kyori:adventure-nbt 4.16.0
com.google.code.gson:gson 2.10.1
placeholder/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
com.github.ben-manes.caffeine:caffeine 2.9.3
plugin/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
net.kyori:adventure-text-minimessage 4.16.0
net.kyori:adventure-nbt 4.16.0
net.kyori:adventure-platform-bungeecord 4.3.2
com.github.ben-manes.caffeine:caffeine 2.9.3
com.typesafe:config 1.4.3
pom.xml
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
org.jetbrains.kotlin:kotlin-maven-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.23
org.jetbrains.kotlin:kotlin-test 1.9.23
org.jetbrains.kotlin:kotlin-jps-plugin 1.9.23
protocol/pom.xml
org.apache.maven.plugins:maven-shade-plugin 3.5.2
net.miaomoe.blessing:nbt 0.0.1
net.kyori:adventure-nbt 4.16.0
net.kyori:adventure-text-minimessage 4.16.0
net.kyori:adventure-text-serializer-legacy 4.16.0
net.kyori:adventure-text-serializer-gson 4.16.0
io.netty:netty-all 4.1.107.Final
com.github.ben-manes.caffeine:caffeine 2.9.3
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.