A plugin that open the GC command execution interface for third-party clients

Overview

gc-opencommand-plugin

中文 | English

一个为第三方客户端开放GC命令执行接口的插件

服务端安装

  1. Release 下载 jar
  2. 放入 plugins 文件夹即可

控制台连接

  1. 首次启动时,会在 plugins 目录下生成一个 opencommand-plugin 目录,打开并编辑 config.json
  2. 设置 consoleToken 的值为你的连接秘钥,建议使用至少32字符的长随机字符串。
  3. 重新启动服务端即可生效配置
  4. 在客户端中选择控制台身份,并填写你的 consoleToken 即可以控制台身份运行指令

构建说明

  1. 克隆仓库
  2. 在目录下新建 lib 目录
  3. grasscutter-1.1.x-dev.jar 放入 lib 目录
  4. gradle build

玩家使用流程

  1. 在客户端中填写服务地址,确认是否支持
  2. 填写UID,发送验证码
  3. 将游戏内收到的4位整数验证码填入客户端校验
  4. 享受便利!

客户端请求流程

  1. ping 确认是否支持 opencommand 插件
  2. sendCode 向指定玩家发送验证码(1分钟内不允许重发),保存返回的 token
  3. 使用 token4位整数验证码发送 verify 校验
  4. 如果验证通过,可以使用该 token 执行 command 动作

config.json

{
  // 控制台连接令牌
  "consoleToken": "",
  // 验证码过期时间(秒)
  "codeExpirationTime_S": 60,
  // 临时令牌过期时间(秒)
  "tempTokenExpirationTime_S": 300,
  // 授权令牌最后使用过期时间(小时)
  "tokenLastUseExpirationTime_H": 48
}

API /opencommand/api

示例

https://127.0.0.1/opencommand/api

Request 请求

public final class JsonRequest {
    public String token = "";
    public String action = "";
    public Object data = null;
}

Response 响应

public final class JsonResponse {
    public int retcode = 200;
    public String message = "success";
    public Object data;
}

Actions 动作

ping

data = null

sendCode

Request

data = uid (int)

Response

data = token (string)

verify 要求 token

Request

data = code (int)

Response
Success:

code = 200

Verification failed:

code = 400

command 要求 token

Request

data = command (string)

Response

data = message (string)

Comments
  • [兼容性问题] GC更改了config相关文件位置,导致启动失败

    [兼容性问题] GC更改了config相关文件位置,导致启动失败

    21:38:41 <INFO:PluginManager> Enabling plugin: opencommand-plugin
    21:38:41 <ERROR:PluginManager> Failed to enable plugin: opencommand-plugin
    java.lang.NoSuchMethodError: 'emu.grasscutter.utils.ConfigContainer emu.grasscutter.Grasscutter.getConfig()'
            at com.github.jie65535.opencommand.OpenCommandPlugin.onEnable(OpenCommandPlugin.java:57)
            at emu.grasscutter.plugin.PluginManager.lambda$enablePlugins$2(PluginManager.java:201)
            at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
            at emu.grasscutter.plugin.PluginManager.enablePlugins(PluginManager.java:198)
            at emu.grasscutter.Grasscutter.main(Grasscutter.java:206)
    
    opened by GuguguBear 8
  • Failed to enable plugin: opencommand-plugin

    Failed to enable plugin: opencommand-plugin

    java.lang.AbstractMethodError: Receiver class com.github.jie65535.opencommand.OpenCommandHandler does not define or inherit an implementation of the resolved method 'abstract void applyRoutes(express.Express, io.javalin.Javalin)' of interface emu.grasscutter.server.http.Router. at emu.grasscutter.server.http.HttpServer.addRouter(HttpServer.java:121) at emu.grasscutter.plugin.api.ServerHook.addRouter(ServerHook.java:92) at com.github.jie65535.opencommand.OpenCommandPlugin.onEnable(OpenCommandPlugin.java:73) at emu.grasscutter.plugin.PluginManager.lambda$enablePlugins$2(PluginManager.java:201) at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721) at emu.grasscutter.plugin.PluginManager.enablePlugins(PluginManager.java:198) at emu.grasscutter.Grasscutter.main(Grasscutter.java:160)

    使用的插件版:1.4.0 使用的GCC版本:9.2.0

    opened by qwesada1233 6
  • 插件在更新服务端后崩溃

    插件在更新服务端后崩溃

    嗯就是这样,插件是121dev版本 在服务端启动中崩溃,报错如下

    15:49:04 INFO:PluginManager Enabling plugin: opencommand-plugin Exception in thread "main" java.lang.NoClassDefFoundError: emu/grasscutter/server/event/game/CommandResponseEvent at com.github.jie65535.opencommand.OpenCommandPlugin.onEnable(OpenCommandPlugin.java:46) at emu.grasscutter.plugin.PluginManager.lambda$enablePlugins$3(PluginManager.java:136) at java.base/java.util.HashMap.forEach(HashMap.java:1421) at emu.grasscutter.plugin.PluginManager.enablePlugins(PluginManager.java:134) at emu.grasscutter.Grasscutter.main(Grasscutter.java:167) Caused by: java.lang.ClassNotFoundException: emu.grasscutter.server.event.game.CommandResponseEvent at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 5 more

    opened by ZXAS007 5
  • 无法连接到路由(DockerGs)

    无法连接到路由(DockerGs)

    [Dispatch] 无法连接路由 java.lang.IllegalArgumentException: Handler with type='POST' and path='/opencommand/api' already exists. at io.javalin.http.PathMatcher.add(PathMatcher.kt:32) at io.javalin.http.JavalinServlet.addHandler(JavalinServlet.kt:97) at io.javalin.Javalin.addHandler(Javalin.java:331) at io.javalin.Javalin.addHandler(Javalin.java:343) at io.javalin.Javalin.post(Javalin.java:361) at com.github.jie65535.opencommand.OpenCommandHandler.applyRoutes(OpenCommandHandler.java:43) at emu.grasscutter.server.http.HttpServer.addRouter(HttpServer.java:122) at emu.grasscutter.plugin.api.ServerHook.addRouter(ServerHook.java:102) at com.github.jie65535.opencommand.OpenCommandPlugin.onEnable(OpenCommandPlugin.java:77) at emu.grasscutter.plugin.PluginManager.lambda$enablePlugins$2(PluginManager.java:201) at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721) at emu.grasscutter.plugin.PluginManager.enablePlugins(PluginManager.java:198)

    opened by keqing114514 4
  • Failed to load plugin: opencommand-plugin

    Failed to load plugin: opencommand-plugin

    12:02:45 INFO:ResourceLoader 正在加载 resources... 12:02:48 INFO:ResourceLoader 完成加载 resources。 12:02:48 INFO:Tools GM Handbooks generated! 12:02:48 INFO:Grasscutter 正在启动 Grasscutter... 12:02:48 INFO:Grasscutter 游戏版本:2.8.0 12:02:48 INFO:Grasscutter Grasscutter 版本:1.2.3-dev-a850d18 12:02:50 INFO:PluginManager Loading plugin: opencommand-plugin 12:02:50 ERROR:PluginManager Failed to load plugin: opencommand-plugin java.lang.NoSuchMethodError: 'emu.grasscutter.utils.ConfigContainer emu.grasscutter.Grasscutter.getConfig()' at com.github.jie65535.opencommand.OpenCommandPlugin.startSocket(OpenCommandPlugin.java:108) at com.github.jie65535.opencommand.OpenCommandPlugin.loadConfig(OpenCommandPlugin.java:104) at com.github.jie65535.opencommand.OpenCommandPlugin.onLoad(OpenCommandPlugin.java:48) at emu.grasscutter.plugin.PluginManager.loadPlugin(PluginManager.java:188) at emu.grasscutter.plugin.PluginManager.loadPlugins(PluginManager.java:121) at emu.grasscutter.plugin.PluginManager.(PluginManager.java:29) at emu.grasscutter.Grasscutter.main(Grasscutter.java:131) 12:02:51 INFO:HttpServer [Dispatch] 服务器已在端口 443 上启动 12:02:51 INFO:GameServer Grasscutter 是免费开源软件,遵循 AGPL-3.0 license。如果你是付费购买的,那你已经被骗了。 项目地址:https://github.com/Grasscutters/Grasscutter 12:02:51 INFO:GameServer 游戏服务器已在端口 22102 上启动

    opened by CM5080 4
  • 这是什么问题引起的

    这是什么问题引起的

    21:00:35 ERROR:TowerScheduleManager Could not get current tower schedule data by schedule id 45, please check your resource files

    java.lang.NullPointerException: Cannot invoke "emu.grasscutter.data.def.TowerScheduleData.getSchedules()" because the return value of "emu.grasscutter.game.tower.TowerScheduleManager.getCurrentTowerScheduleData()" is null at emu.grasscutter.game.tower.TowerScheduleManager.getScheduleFloors(TowerScheduleManager.java:50) at emu.grasscutter.server.packet.send.PacketTowerAllDataRsp.(PacketTowerAllDataRsp.java:33) at emu.grasscutter.server.packet.recv.HandlerTowerAllDataReq.handle(HandlerTowerAllDataReq.java:16) at emu.grasscutter.server.game.GameServerPacketHandler.handle(GameServerPacketHandler.java:88) at emu.grasscutter.server.game.GameSession.onMessage(GameSession.java:250) at emu.grasscutter.netty.KcpChannel.channelRead(KcpChannel.java:43) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.jpower.kcp.netty.UkcpServerChannel$UkcpServerUnsafe.read(UkcpServerChannel.java:603) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833)

    opened by SanFenAi 3
  • 1.4.3服务端不兼容。

    1.4.3服务端不兼容。

    root@debian:~# ./StartGrasscutter
    04:07:21 <INFO:Grasscutter> 正在启动 Grasscutter...
    04:07:21 <INFO:Grasscutter> 游戏版本:3.2.0
    04:07:21 <INFO:Grasscutter> Grasscutter 版本:1.4.3-dev-e8930e92
    04:07:21 <INFO:ResourceLoader> 正在加载 resources...
    04:07:26 <INFO:ResourceLoader> 完成加载 resources。
    04:07:27 <INFO:Language> Generating TextMaps cache
    04:07:28 <INFO:Tools> GM Handbooks generated!
    04:07:30 <INFO:PluginManager> 正在加载插件:opencommand-plugin
    Exception in thread "main" io.javalin.core.util.JavalinBindException: Port already in use. Make sure no other process is using port 10443 and try again.
            at io.javalin.Javalin.start(Javalin.java:184)
            at io.javalin.Javalin.start(Javalin.java:148)
            at io.javalin.Javalin.start(Javalin.java:134)
            at emu.grasscutter.server.http.HttpServer.start(HttpServer.java:136)
            at emu.grasscutter.Grasscutter.main(Grasscutter.java:146)
    Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:10443
            at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
            at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
            at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
            at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
            at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
            at org.eclipse.jetty.server.Server.doStart(Server.java:401)
            at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
            at io.javalin.jetty.JettyServer.start(JettyServer.kt:65)
            at io.javalin.Javalin.start(Javalin.java:174)
            ... 4 more
    Caused by: java.net.BindException: Address already in use
            at java.base/sun.nio.ch.Net.bind0(Native Method)
            at java.base/sun.nio.ch.Net.bind(Net.java:555)
            at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337)
            at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
            at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:89)
            at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
            ... 12 more
    ```
    opened by GuguguBear 2
  • 放入后打开服务端提示这个

    放入后打开服务端提示这个

    Exception in thread "main" java.lang.NoClassDefFoundError: emu/grasscutter/server/http/Router at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524) at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427) at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421) at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at emu.grasscutter.plugin.PluginManager.lambda$loadPlugins$2(PluginManager.java:84) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at emu.grasscutter.plugin.PluginManager.loadPlugins(PluginManager.java:64) at emu.grasscutter.plugin.PluginManager.(PluginManager.java:30) at emu.grasscutter.Grasscutter.main(Grasscutter.java:113) Caused by: java.lang.ClassNotFoundException: emu.grasscutter.server.http.Router at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 15 more

    opened by gyf1995 2
  • 代理出现问题。查询服务端状态失败,无法连接到远程服务器。远程执行插件显示为红×。游戏中就显示没有权限执行此命令

    代理出现问题。查询服务端状态失败,无法连接到远程服务器。远程执行插件显示为红×。游戏中就显示没有权限执行此命令

    代理 进服务器后可关中出现下列错误:太长了一直在增加就只取了一小段 127.0.0.1:49197: client connect 127.0.0.1:49197: server connect update.pan.baidu.com:443 (111.63.96.52:443) 127.0.0.1:49197: Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for update.pan.baidu.com, this may indicate that the client does not trust the proxy's certificate. 127.0.0.1:49197: client disconnect 127.0.0.1:49197: server disconnect update.pan.baidu.com:443 (111.63.96.52:443) 127.0.0.1:49205: client connect 此外之前代理出现过这个错误Traceback (most recent call last):

    File "asyncio\proactor_events.py", line 820, in loop

    File "asyncio\windows_events.py", line 817, in _poll

    File "asyncio\windows_events.py", line 566, in finish_accept

    OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。

    Please lodge a bug report at: https://github.com/mitmproxy/mitmproxy/issues Traceback (most recent call last):

    File "asyncio\windows_events.py", line 571, in accept_coro

    File "asyncio\proactor_events.py", line 820, in loop

    File "asyncio\windows_events.py", line 817, in _poll

    File "asyncio\windows_events.py", line 566, in finish_accept

    OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。

    Please lodge a bug report at: https://github.com/mitmproxy/mitmproxy/issues 之前是代理不对进游戏一直是国服界面 在csdn找到输入netsh winsock reset解决后就出现这个问题了 希望帮帮忙解决一下

    opened by xiaosui622123 1
  • hmm

    hmm

    22:40:23 INFO:PluginManager Enabling plugin: opencommand-plugin Exception in thread "main" java.lang.NoSuchMethodError: 'void emu.grasscutter.server.event.EventHandler.register(emu.grasscutter.plugin.Plugin)' at com.github.jie65535.opencommand.OpenCommandPlugin.onEnable(OpenCommandPlugin.java:49) at emu.grasscutter.plugin.PluginManager.lambda$enablePlugins$3(PluginManager.java:131) at java.base/java.util.HashMap.forEach(HashMap.java:1421) at emu.grasscutter.plugin.PluginManager.enablePlugins(PluginManager.java:129) at emu.grasscutter.Grasscutter.main(Grasscutter.java:157)

    opened by DeletedUser575703f6 1
  • fix issue from grasscutter upgrade

    fix issue from grasscutter upgrade

    https://github.com/Grasscutters/Grasscutter/commit/5b44f79f216216808cec0de1d3636562e6d25f2c some update before this commit breaks the code. this patch tries to fix it.

    opened by realqhc 1
Releases(v1.5.0)
  • v1.5.0(Oct 6, 2022)

  • v1.4.0(Sep 2, 2022)

    现已支持 Grasscutter-v1.3.0,若你使用的是旧版Gc,请不要使用该版本插件!

    Grasscutter-v1.3.0 is now supported, if you are using an old version of Gc, please do not use this version of the plugin!

    Full Changelog: https://github.com/jie65535/gc-opencommand-plugin/compare/v1.3.0...v1.4.0

    Source code(tar.gz)
    Source code(zip)
    opencommand-dev-1.4.0.jar(48.97 KB)
  • v1.3.0(Jul 26, 2022)

    What's Changed

    • Add multi server support by @577fkj in https://github.com/jie65535/gc-opencommand-plugin/pull/12

    New Contributors

    • @577fkj made their first contribution in https://github.com/jie65535/gc-opencommand-plugin/pull/12

    Full Changelog: https://github.com/jie65535/gc-opencommand-plugin/compare/v1.2.4...v1.3.0

    Source code(tar.gz)
    Source code(zip)
    opencommand-dev-1.3.0.jar(49.33 KB)
  • v1.2.4(Jul 10, 2022)

  • v1.2.3(Jun 24, 2022)

  • v1.2.1(May 18, 2022)

  • v1.2.0(May 16, 2022)

    • 新增配置文件
      • 可配置控制台Token(建议用长随机字符串)
      • 可配置验证码超时时间(默认值 60 秒)
      • 可配置临时Token超时时间(默认值 240 秒)
      • 可配置验证后Token超时时间(默认值 48 小时)
    • 新增以控制台执行命令(目前无法得到控制台输出)

    • Added configuration file
      • Configurable console token (recommended to use a long random string)
      • Configurable captcha timeout (default 60 seconds)
      • Configurable temporary token timeout (default 240 seconds)
      • Configurable Token timeout after authentication (default 48 hours)
    • Added command execution via console (currently unable to get console output)
    Source code(tar.gz)
    Source code(zip)
    opencommand-dev-1.2.0.jar(8.69 KB)
  • v1.1.0(May 14, 2022)

    • 支持dev最新版本dev-1.1.2(如果你的服务端是旧版本,不要使用1.1.0,请升级或者使用1.0.0)
    • 修复token过期未删除问题
    • 修复玩家实例并发争夺问题

    • Support dev latest version dev-1.1.2 (if your server is an old version, don't use 1.1.0, please upgrade or use 1.0.0)
    • Fixed the problem that the token expired and was not deleted
    • Fixed player instance concurrent contention issue
    Source code(tar.gz)
    Source code(zip)
    opencommand-dev-1.1.0.jar(6.60 KB)
Owner
筱傑
: )
筱傑
The ByteSkript development kit, including resources for third-party libraries that are not contained within the standard runtime.

ByteSkript Development Kit Todo. The development kit is a set of advanced resources available for library creators. These are not available within the

null 1 Jan 8, 2022
Nekogram is a third-party Telegram client with not many but useful modifications

Nekogram is a third-party Telegram client with not many but useful modifications

Ketal 8 Nov 13, 2022
UniFi Proxy makes it possible to integrate third-party hardware into UniFi Protect

UniFi Proxy UniFi Proxy makes it possible to integrate third-party hardware into UniFi Protect. For testing purposes only, it is recommended to purcha

Jan Heil 8 Dec 27, 2022
Java controlled pub command execution

OPIUM - Operate pub interface under machine. This package allows operating pub command with Java object only and return console context. Perquisites C

Project Will Pub 1 Jan 23, 2022
Two Spring-boot applications registering themselves to an spring-boot-admin-server application as separate clients for the purpose of monitoring and managing the clients

Spring-boot-admin implementation with 1 Server and 2 clients Creating a Server application to monitor and manage Spring boot applications (clients) un

null 6 Dec 6, 2022
Log4j CVE-2021-44228 examples: Remote Code Execution (through LDAP, RMI, ...), Forced DNS queries, ...

Log4j CVE-2021-44228 and CVE-2021-45046 Requisites Use a vulnerable JDK, for instance JDK 1.8.0_181 Usage Malicious server The malicious server deploy

Manuel Álvarez Álvarez 5 Feb 7, 2022
RR4J is a tool that records java execution and later allows developers to replay locally.

RR4J [Record Replay 4 Java] RR4J is a tool that records java execution and later allows developers to replay locally. The tool solves one of the chall

Kartik  kalaghatgi 18 Dec 7, 2022
A Maven extension for validating and collecting checksums of all artifacts during execution.

Maven checksum extension This extension allows for the creation and the enforcement of checksums for any artifact that is resolved by Maven. Without s

Rafael Winterhalter 12 Aug 6, 2022
FIDO2(WebAuthn) server officially certified by FIDO Alliance and Relying Party examples.

Overview FIDO (Fast IDentity Online) is an open standard for online authentication. It is designed to solve the password problems stemming from a lot

LINE 400 Jan 5, 2023
Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Gabriele Rizzo 865 Jan 2, 2023
The SPID/CIE OIDC Federation Relying Party, written in Java

SPID/CIE OIDC Federation, for Java SPID/CIE OIDC Federation (for Java) is a starter kit and example projects designed to ease the creation of an OpenI

Developers Italia 15 Dec 13, 2022
A Minecraft Plugin For 1.8.8 - 1.19.2 For Giving A Player A Custom Item On Join Which Executes A Command On Right Click

PixelPlayz Custom Item A Minecraft Plugin For 1.8.8 - 1.19.2 For Giving A Player A Custom Item On Join Which Executes A Command On Right Click Install

null 2 Sep 9, 2022
The Apache Software Foundation 605 Dec 30, 2022
Java framework for making REST clients

Pocolifo's REST Client Framework Java framework for making REST clients Here's how easy it is Here's an example for a GET request in the context of a

null 3 Jun 19, 2022
A singular file to protect as many Minecraft servers and clients as possible from the Log4j exploit (CVE-2021-44228).

MC-Log4J-Patcher The goal of this project is to provide Minecraft players, and server owners, peace of mind in regards to the recently discovered Log4

Koupa Taylor 4 Jan 4, 2022
Drone - A service via REST API that allows clients to communicate with drones

Drone - A service via REST API that allows clients to communicate with drones (i.e. **dispatch controller**). The specific communication with the drone is outside the scope of this task.

Obinna Ogbonna 1 Jan 10, 2022
An Xposed module for Telegram clients

TMoe TMoe 是一个兼容若干第三方开源 Telegram 客户端的开源 Xposed 模块 使用方法 激活本模块后,在 Telegram 客户端的设置中点击 "TMoe 设置" 即可开关对应功能。 一切开发旨在学习,请勿用于非法用途 本项目保证永久开源,欢迎提交 Issue 或者 Pull R

Acetylcholine 355 Dec 31, 2022
A platform that links service providers with clients using Angular & Springboot

Bricoly : Engineer Your Life The Way It Should Be... ?? Description This project's aims to connect people who are able to grant services with clients

Yasser Douslimi 9 May 28, 2022
Adds support for using InputStream/OutputStream from Spring's web clients

Spring stream interoperability This project offers three integrations: A WebClientHttpRequestFactory that redirects the RestTemplate API calls to a We

Rafael Winterhalter 5 Dec 18, 2022