版权声明
XChat 及相关组件(下简称为“XChat”)是由 这里是小邓(xiaodeng.tk) 独立编写的聊天软件,所有源码使用 MIT协议 授权。
隐私声明
XChat 不会收集和公开所以除 用户昵称、客户端信息(版本、类型、IP地址)、聊天记录 以外的用户信息,收集到的信息将被当前连接的服务器储存在日志文件中
免责声明
禁止将 XChat 用于 赌博、传播色情、诈骗等违法违规用途,否则产生的一切责任将有用户承担。开发者不承担任何用户造成的责任
XChat 及相关组件(下简称为“XChat”)是由 这里是小邓(xiaodeng.tk) 独立编写的聊天软件,所有源码使用 MIT协议 授权。
XChat 不会收集和公开所以除 用户昵称、客户端信息(版本、类型、IP地址)、聊天记录 以外的用户信息,收集到的信息将被当前连接的服务器储存在日志文件中
禁止将 XChat 用于 赌博、传播色情、诈骗等违法违规用途,否则产生的一切责任将有用户承担。开发者不承担任何用户造成的责任
版本:V1.2-beta
XChat Server 是软件 XChat 的服务端,可以让您在1分钟内拥有一个自己的 XChat 服务器。
from rich.console import Console
import socket
import json
import threading
import time
console = Console()
threads = {}
messages = [
{"from":"Server","msg":"Server Started","time":time.time()}
]
threadList = []
users = {}
def handle(sock, addr):
global console, messages, threads, threadList, users
msgid = 0
username = ""
while True:
resp_data = {
"code":200,
"msg":"OK",
"data":{}
}
recv_data = sock.recv(1024)
try:
recv_data = recv_data.decode("utf-8")
recv_data = json.loads(recv_data)
if username != "":
if recv_data["mode"] == "getMsg":
try:
resp_data["data"]["messages"] = messages[msgid:]
msgid = messages.__len__()
except:
resp_data["data"]["messages"] = []
elif recv_data["mode"] == "sendMsg":
messages += [
{
"from":username,
"msg":recv_data["data"]["msg"],
"time":time.time()
}
]
console.log(f"[CHAT] <{username}> {recv_data['data']['msg']}")
elif recv_data["mode"] == "exit":
sock.close()
return 0
elif recv_data["mode"] == "getList":
userList = []
for t in threadList:
if threads[t].is_alive():
userList += [users[t].getName()]
resp_data["data"]["list"] = userList
else:
resp_data["code"] = 404
resp_data["msg"] = "Unkown mode"
elif recv_data["mode"] == "login":
username = recv_data["data"]["username"]
# threads[addr[1]].setName(username)
users[addr[1]] = username
else:
resp_data["code"] = 403
resp_data["msg"] = "Please Login First"
except Exception as e:
console.print_exception(show_locals=True)
resp_data["code"] = 500
resp_data["msg"] = "Internal Server Error"
resp_data["data"]["exception"] = str(e)
# 回复
resp_data = json.dumps(resp_data)
sock.send(resp_data.encode("utf-8"))
if __name__ == "__main__":
port = int(console.input("[blue]Port: "))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(
(
"",
port
)
)
sock.listen(128)
console.log(f"Server started on 0.0.0.0:{port}.")
while True:
s, addr = sock.accept()
console.log(f"{addr[1]} connected to this server.")
threadList += [addr[1]]
users[addr[1]] = ""
threads[addr[1]] = threading.Thread(None, lambda: handle(s, addr))
threads[addr[1]].setDaemon(True)
threads[addr[1]].start()
温馨提示:本文可能已经过时
版本:pre-1
XChat 是一个简单好用的聊天软件,它(指原版,给改了不关我事熬)不会收集任何除必须外的用户信息
import socket
from rich.console import Console
import threading
import json
import time
console = Console()
sock = None
sockThread = None
def send(data):
global sock
sock.send(
json.dumps(data).encode("utf-8")
)
return json.loads(
sock.recv(1024).decode("utf-8")
)
def getMsg():
global sock, console
while True:
msg = send(
{
"mode":"getMsg",
"data":{}
}
)
try:
for m in msg["data"]["messages"]:
t = time.strftime(
"%H:%M:%S",
time.localtime(m["time"])
)
console.print(
f'[{t}]<[yellow]{m["from"]}[/]> {m["msg"]}'
)
except:
pass
if __name__ == "__main__":
console.print("[green]XChat CLI V1")
sock = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM
)
sock.connect(
(
console.input("[yellow]IP: "),
int(console.input("[yellow]Port: "))
)
)
loginRecv = send(
{
"mode":"login",
"data":{
"username":console.input(
"[yellow]User: "
)
}
}
)
if loginRecv["code"] == 200:
console.print(
"[green]Server connected!"
)
sockThread = threading.Thread(
None,
getMsg
)
sockThread.start()
while True:
sendMsg = console.input("")
send(
{
"mode":"sendMsg",
"data":{
"msg":sendMsg
}
}
)
——https://minecraft.fandom.com/zh/wiki/Java%E7%89%881.19.1?so=search
也就是说,你如果被举报, 的Minecraft正版账号就差不多8BQ了
简单粗暴,不过……
This mod strips cryptographic signatures that since 1.19 are attached to every message sent in the chat. by Removing them makes it impossible to track and associate your chat messages with your Minecraft and, extension, Microsoft account. As of 1.19.1, it will also disable Player Chat Reporting.
——https://modrinth.com/mod/no-chat-reports
MOD介绍页:https://modrinth.com/mod/no-chat-reports
对于事件后续,我们也将持续关注
下面摘取 pcls 某群友一句话:
a href="https://minecraft.fandom.举报系统就nm是歌姬吧
——xiaohhya1234MUA(开学,跑路)
温馨提示:本文可能已经过时
XToolsBox+ 是一个可拓展的 Python3 小型工具箱,可跨 PC 几乎所有能跑 pygame 平台; 庞大(并不)的插件市场让它拥有了多样性的功能。
没有什么东西是一个插件解决不了的,如果有,那就改源代码(?)。