Skip to content

Commit cce2ea9

Browse files
author
magiclu550
committed
[commit] #1071 add scp079
1 parent 1d24412 commit cce2ea9

5 files changed

Lines changed: 97 additions & 23 deletions

File tree

JPLS/src/main/java/cn/jsmod2/RPCHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ public boolean stop(){
212212
* @return ip地址/已经关闭
213213
*/
214214
public String get_ip(){
215-
if(Server.getSender()==null){
215+
if(Server.getSender()==null||!Server.getSender().getServer().isConnected){
216216
return "the server has stopped";
217217
}
218218
return Server.getSender().getServer().getGameServer().getIpAddress();
@@ -223,7 +223,7 @@ public String get_ip(){
223223
* @return 最大玩家数量
224224
*/
225225
public int get_player_max(){
226-
if(Server.getSender()==null){
226+
if(Server.getSender()==null||!Server.getSender().getServer().isConnected){
227227
return 0;
228228
}
229229
return Server.getSender().getServer().getGameServer().getMaxPlayers();
@@ -234,7 +234,7 @@ public int get_player_max(){
234234
* @return 在线玩家数量
235235
*/
236236
public int get_player(){
237-
if(Server.getSender()==null){
237+
if(Server.getSender()==null||!Server.getSender().getServer().isConnected){
238238
return 0;
239239
}
240240
return Server.getSender().getServer().getGameServer().getPlayers().size();
@@ -246,7 +246,7 @@ public int get_player(){
246246
*/
247247
public List<String> get_player_list(){
248248
List<String> list = new ArrayList<>();
249-
if(Server.getSender()==null)return list;
249+
if(Server.getSender()==null||!Server.getSender().getServer().isConnected)return list;
250250
List<? extends IPlayer> players = Server.getSender().getServer().getGameServer().getPlayers();
251251
for(IPlayer p:players){
252252
list.add(p.getName());

JPLS/src/main/java/cn/jsmod2/api/item/Item.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717

1818
public class Item extends ApiId implements Cloneable, Serializable,IItem {
1919

20+
public Item(){
21+
22+
}
2023
//在字段注入使用
2124
//playerName换成ItemId
2225

JPLS/src/main/java/cn/jsmod2/api/player/Player.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public Player(String name){
5050
super(name, Powers.ALL,Powers.PLAYER);
5151
}
5252

53+
public Player(){
54+
this("");
55+
}
5356
@Override
5457
public String getName() {
5558
SimpleGetStream stream = new SimpleGetStream(String.class);

JPLS/src/main/java/cn/jsmod2/api/player/Scp079Data.java

Lines changed: 86 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99
package cn.jsmod2.api.player;
1010

1111
import cn.jsmod2.api.Component;
12-
import cn.jsmod2.api.map.IDoor;
13-
import cn.jsmod2.api.map.IRoom;
14-
import cn.jsmod2.api.map.ITeslaGate;
15-
import cn.jsmod2.api.map.Room;
12+
import cn.jsmod2.api.map.*;
1613
import cn.jsmod2.core.ApiId;
1714
import cn.jsmod2.core.math.Vector;
15+
import cn.jsmod2.network.DoGetStream;
16+
import cn.jsmod2.network.DoStream;
17+
import cn.jsmod2.network.SimpleGetStream;
18+
import cn.jsmod2.network.SimpleSetStream;
19+
import cn.jsmod2.network.protocol.event.newstream.GetTypes;
1820

1921
import java.io.Serializable;
22+
import java.util.List;
2023

2124
public class Scp079Data extends ApiId implements IScp079Data, Serializable,Cloneable, Component {
2225

@@ -38,131 +41,195 @@ public class Scp079Data extends ApiId implements IScp079Data, Serializable,Clone
3841

3942
private float pitch;
4043

41-
private Room speaker;
44+
private IRoom speaker;
4245

4346
private Vector camera;
4447

4548
public float getExp() {
49+
SimpleGetStream stream = new SimpleGetStream(Float.class);
50+
exp = stream.read(playerName,"Exp",Float.class);
4651
return exp;
4752
}
4853

4954
public void setExp(float exp) {
55+
SimpleSetStream stream = new SimpleSetStream();
56+
stream.write(playerName,"Exp",exp);
5057
this.exp = exp;
5158
}
5259

5360
public int getExpToLevelUp() {
61+
SimpleGetStream stream = new SimpleGetStream(Integer.class);
62+
expToLevelUp = stream.read(playerName,"ExpToLevelUp",Integer.class);
5463
return expToLevelUp;
5564
}
5665

5766
public void setExpToLevelUp(int expToLevelUp) {
67+
SimpleSetStream stream = new SimpleSetStream();
68+
stream.write(playerName,"ExpToLevelUp",expToLevelUp);
5869
this.expToLevelUp = expToLevelUp;
5970
}
6071

6172
public int getLevel() {
73+
SimpleGetStream stream = new SimpleGetStream(Integer.class);
74+
level = stream.read(playerName,"Level",Integer.class);
6275
return level;
6376
}
6477

6578
public void setLevel(int level) {
79+
SimpleSetStream stream = new SimpleSetStream();
80+
stream.write(playerName,"Level",level);
6681
this.level = level;
6782
}
6883

6984
public float getAP() {
85+
SimpleGetStream stream = new SimpleGetStream(Float.class);
86+
AP = stream.read(playerName,"AP",Float.class);
7087
return AP;
7188
}
7289

7390
public void setAP(float AP) {
91+
SimpleSetStream stream = new SimpleSetStream();
92+
stream.write(playerName,"AP",AP);
7493
this.AP = AP;
7594
}
7695

7796
public float getAPPerSecond() {
97+
SimpleGetStream stream = new SimpleGetStream(Float.class);
98+
APPerSecond = stream.read(playerName,"APPerSecond",Float.class);
7899
return APPerSecond;
79100
}
80101

81102
public void setAPPerSecond(float APPerSecond) {
103+
SimpleSetStream stream = new SimpleSetStream();
104+
stream.write(playerName,"APPerSecond",APPerSecond);
82105
this.APPerSecond = APPerSecond;
83106
}
84107

85108
public float getMaxAP() {
109+
SimpleGetStream stream = new SimpleGetStream(Float.class);
110+
maxAP = stream.read(playerName,"MaxAP",Float.class);
86111
return maxAP;
87112
}
88113

89114
public void setMaxAP(float maxAP) {
115+
SimpleSetStream stream = new SimpleSetStream();
116+
stream.write(playerName,"MaxAP",maxAP);
90117
this.maxAP = maxAP;
91118
}
92119

93120
public float getSpeakerAPPerSecond() {
121+
SimpleGetStream stream = new SimpleGetStream(Float.class);
122+
speakerAPPerSecond = stream.read(playerName,"SpeakerAPPerSecond",Float.class);
94123
return speakerAPPerSecond;
95124
}
96125

97126
public void setSpeakerAPPerSecond(float speakerAPPerSecond) {
127+
SimpleSetStream stream = new SimpleSetStream();
128+
stream.write(playerName,"SpeakerAPPerSecond",speakerAPPerSecond);
98129
this.speakerAPPerSecond = speakerAPPerSecond;
99130
}
100131

101132
public float getYaw() {
133+
SimpleGetStream stream = new SimpleGetStream(Float.class);
134+
yaw = stream.read(playerName,"Yaw",Float.class);
102135
return yaw;
103136
}
104137

105138

106139
public float getPitch() {
140+
SimpleGetStream stream = new SimpleGetStream(Float.class);
141+
pitch = stream.read(playerName,"Pitch",Float.class);
107142
return pitch;
108143
}
109144

110145

111-
public Room getSpeaker() {
146+
public IRoom getSpeaker() {
112147
return speaker;
113148
}
114149

115-
public void setSpeaker(Room speaker) {
116-
this.speaker = speaker;
117-
}
118-
119150
public Vector getCamera() {
151+
SimpleGetStream stream = new SimpleGetStream(Vector.class);
152+
camera = stream.read(playerName,"Camera",Vector.class);
120153
return camera;
121154
}
122155

123156
@Override
124157
public void setSpeaker(IRoom iRoom) {
125-
158+
SimpleSetStream stream = new SimpleSetStream();
159+
stream.write(playerName,"Speaker",speaker);
160+
this.speaker = iRoom;
126161
}
127162

128163
@Override
129164
public IDoor[] getLockedDoors() {
130-
return new IDoor[0];
165+
DoGetStream stream = new DoGetStream(Door.class);
166+
stream.playerName = playerName;
167+
stream.method = "GetLockedDoors";
168+
stream.getType = GetTypes.GET_PROTOCOL_ARRAY_WITHOUT_LIST_IN;
169+
return (IDoor[]) ((List)stream.send()).toArray();
131170
}
132171

133172
@Override
134173
public void lock(IDoor iDoor) {
135-
174+
DoStream stream = new DoStream();
175+
stream.playerName = playerName;
176+
stream.method = "Lock";
177+
stream.args = new String[]{((ApiId)iDoor).getApiId()};
178+
stream.send();
136179
}
137180

138181
@Override
139182
public void unlock(IDoor iDoor) {
140-
183+
DoStream stream = new DoStream();
184+
stream.playerName = playerName;
185+
stream.method = "Unlock";
186+
stream.args = new String[]{((ApiId)iDoor).getApiId()};
187+
stream.send();
141188
}
142189

143190
@Override
144191
public void triggerTesla(ITeslaGate iTeslaGate) {
145-
192+
DoStream stream = new DoStream();
193+
stream.method = "TriggerTesla";
194+
stream.playerName = playerName;
195+
stream.args = new String[]{((ApiId)iTeslaGate).getApiId()};
196+
stream.send();
146197
}
147198

148199
@Override
149200
public void lockdown(IRoom iRoom) {
150-
201+
DoStream stream = new DoStream();
202+
stream.playerName = playerName;
203+
stream.method = "Lockdown";
204+
stream.args = new String[]{((ApiId)iRoom).getApiId()};
205+
stream.send();
151206
}
152207

153208
@Override
154209
public void setCamera(Vector vector, boolean b) {
155-
210+
DoStream stream = new DoStream();
211+
stream.playerName = playerName;
212+
stream.method = "Camera";
213+
stream.args = new String[]{vector.toString(),b+""};
214+
stream.send();
156215
}
157216

158217
@Override
159218
public void showGainExp(ExperienceType experienceType) {
160-
219+
DoStream stream = new DoStream();
220+
stream.playerName = playerName;
221+
stream.method = "ShowGainExp";
222+
stream.args = new String[]{"'"+experienceType+"'"};
223+
stream.send();
161224
}
162225

163226
@Override
164227
public void showLevelUp(int i) {
165-
228+
DoStream stream = new DoStream();
229+
stream.playerName = playerName;
230+
stream.method = "ShowLevelUp";
231+
stream.args = new String[]{i+""};
232+
stream.send();
166233
}
167234

168235
@Override

JPLS/src/main/java/cn/jsmod2/core/Server.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,7 @@ public void run() {
914914
if(!Server.getSender().getServer().isConnected){
915915
ServerLogger.getLogger().multiInfo(getClass(),"the listener thread is closed","","");
916916
}
917+
//getLogger().multiDebug(getClass(),"正在响应...","","");
917918
Socket socket = ((ServerSocket)serverSocket).accept();
918919
scheduler.executeRunnable(new SocketHandlerThread(socket));
919920
if (isDebug) {

0 commit comments

Comments
 (0)