From b1953e18f194dde0bca72e46128840380ccaa6d3 Mon Sep 17 00:00:00 2001 From: xiangmy21 <2248278431@qq.com> Date: Mon, 1 Apr 2024 17:26:46 +0800 Subject: [PATCH] feat(Share): add IntroPage & MinecraftPage --- src/app/ShareSite/IntroPage.tsx | 110 ++++++++++++++++++++++++++++ src/app/ShareSite/MinecraftPage.tsx | 107 +++++++++++++++++++++++++++ src/app/ShareSite/index.tsx | 36 ++++++--- 3 files changed, 244 insertions(+), 9 deletions(-) create mode 100644 src/app/ShareSite/IntroPage.tsx create mode 100644 src/app/ShareSite/MinecraftPage.tsx diff --git a/src/app/ShareSite/IntroPage.tsx b/src/app/ShareSite/IntroPage.tsx new file mode 100644 index 000000000..eb9439652 --- /dev/null +++ b/src/app/ShareSite/IntroPage.tsx @@ -0,0 +1,110 @@ +import React from "react"; +import { Button, Card, Col, Row, Space, Typography } from "antd"; +import { RightCircleOutlined } from "@ant-design/icons"; +import { PageProps } from ".."; +import { useUrl } from "@/api/hooks/url"; +import { useNavigate } from "react-router-dom"; + +const { Title, Paragraph } = Typography; + +type ResourceProps = { + image: string; + title: string; + text: string; + link: string; + reverse?: boolean; +}; + +const Resource: React.FC = ({ + image, + title, + text, + link, + reverse, +}) => { + const navigate = useNavigate(); + return ( + + + + resource + + + + {title} + + {text} + + + + + + + ); +}; + +const IntroPage: React.FC = ({ mode, user }) => { + const url = useUrl(); + return ( + + + + + + + + ); +}; + +export default IntroPage; diff --git a/src/app/ShareSite/MinecraftPage.tsx b/src/app/ShareSite/MinecraftPage.tsx new file mode 100644 index 000000000..8749b8ef0 --- /dev/null +++ b/src/app/ShareSite/MinecraftPage.tsx @@ -0,0 +1,107 @@ +import React, { useEffect } from "react"; +import { Typography, Space, Image, Card, Row, Col } from "antd"; +import { SmileOutlined } from "@ant-design/icons"; +import { PageProps } from ".."; + +const { Title, Paragraph, Text, Link } = Typography; +const { Meta } = Card; + +const MinecraftPage: React.FC = ({ mode, user }) => { + useEffect(() => { + window.scrollTo(0, 0); + }, []); + + return ( + + + + <SmileOutlined /> 欢迎来到EESAST的Minecraft服务器! + + + + 众所周知,Minecraft是一款非常受欢迎的沙盒游戏,同时其中的红石电路部分与电子工程息息相关, + 我们可以在实践中轻松地学习逻辑门、触发器等数字逻辑知识,搭建各种有趣的机器,亲手体验电子工程的乐趣。 +
+ 为了让大家更好地体验Minecraft和数字电路的乐趣,我们特别搭建了这个服务器,大家可以在这里互相交流玩耍。 +
+ 软件部还会在暑假举办红石设计大赛,不论是萌新还是老手,都可以参与其中,一展自己的才华! +
+ + 什么是Minecraft服务器? + + Minecraft服务器是一个游戏服务端,大家可以使用本地Minecraft客户端通过IP地址或域名连接到服务器, + 从而实现多个玩家在同一个世界中一起游玩,共享资源,合作建设,竞争或对战。 + 服务器可以设置不同的规则和模式,例如创造模式、生存模式或冒险模式,以适应各种游戏风格。 + 服务器的管理员可以通过插件或模组来自定义服务器的各种功能,包括物品生成,怪物出生,天气变化等。这些服务器可以在个人电脑上运行,也可以租用专业的游戏服务器托管。 + + + 我要怎么连接服务器? + + + EESAST的服务器域名为 mc.eesast.com + + , 推荐大家使用PCL2客户端连接(也可自选其他客户端),具体教程请参考 + + PCL2食用(设置)教程 + + 。 + + + 我要去哪里学习红石知识? + + + 软件部的红石基础教程: + + 清华大学电子系科协软件部2023暑期培训 + + 。 + + 你可以通过这个视频了解到红石的基本概念和使用方法,帮助你更好地开始你的Minecraft之旅。如果希望进一步学习,可以参考网上的更多资料。如果你对Minecraft非常感兴趣,可以考虑了解一下学校次世代社团的MC部THUnion,那里汇集了许多MC爱好者,他们也在红石设计大赛中展示了非常优秀的作品。 + + + + + + } + > + + + + + + + + } + > + + + + +
+
+ ); +}; + +export default MinecraftPage; diff --git a/src/app/ShareSite/index.tsx b/src/app/ShareSite/index.tsx index f88db2c85..84b450550 100644 --- a/src/app/ShareSite/index.tsx +++ b/src/app/ShareSite/index.tsx @@ -8,6 +8,8 @@ import styled from "styled-components"; import WeeklyPage from "./WeeklyPage"; import { useUrl } from "../../api/hooks/url"; import { PageProps } from ".."; +import IntroPage from "./IntroPage"; +import MinecraftPage from "./MinecraftPage"; const ShareSite: React.FC = ({ mode, user }) => { const url = useUrl(); @@ -52,16 +54,20 @@ const ShareSite: React.FC = ({ mode, user }) => { const items = [ { - key: "course", - label: 课程, - disabled: true, - }, - { - key: "repo", - label: 仓库, - disabled: true, + key: "intro", + label: 介绍, }, // { + // key: "course", + // label: 课程, + // disabled: true, + // }, + // { + // key: "repo", + // label: 仓库, + // disabled: true, + // }, + // { // key: "toturial", // label: 教程, // }, @@ -69,6 +75,10 @@ const ShareSite: React.FC = ({ mode, user }) => { key: "weekly", label: 推送, }, + { + key: "minecraft", + label: Minecraft, + }, ]; return ( @@ -84,7 +94,11 @@ const ShareSite: React.FC = ({ mode, user }) => { }> - } /> + } /> + } + /> } @@ -95,6 +109,10 @@ const ShareSite: React.FC = ({ mode, user }) => { path="weekly" element={} /> + } + /> } />