Skip to content

Commit dfca522

Browse files
committed
速度向上?
1 parent 277ec31 commit dfca522

6 files changed

Lines changed: 122 additions & 7 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import org.apache.tools.ant.filters.ReplaceTokens
33
apply plugin: 'java'
44

55
group = 'xyz.n7mn.dev.yululi'
6-
version = '3.0.7-beta3'
6+
version = '3.0.7-rc1'
77

88
sourceCompatibility = '1.8'
99
targetCompatibility = '1.8'

src/main/java/xyz/n7mn/dev/yululi/itemframeprotectionplugin/IFPCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,10 @@ public void run() {
107107

108108
if (args[0].toLowerCase().equals("admin") && player.hasPermission("ifp.op")){
109109

110-
List<FrameData> list = api.getListByFrameData(false);
110+
111111
sender.sendMessage("---- ItemFrameProtectPlugin Ver " + plugin.getDescription().getVersion() + " ----");
112-
sender.sendMessage(ChatColor.GREEN + "保護件数 : " + list.size() + " 件");
112+
sender.sendMessage(ChatColor.GREEN + "保護件数 : " + api.getCountByItemFrame() + " 件");
113+
List<FrameData> list = api.getListByFrameData(false);
113114

114115
for (FrameData data : list){
115116

src/main/java/xyz/n7mn/dev/yululi/itemframeprotectionplugin/ItemFrameListener.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ public void BlockBreakEvent (HangingBreakEvent e){
149149

150150
// 額縁壊されるとき
151151
ItemFrame frame = (ItemFrame) e.getEntity();
152-
List<FrameData> list = api.getListByFrameData(true);
153152

154153
FrameData itemFrame = api.getItemFrame(frame.getUniqueId());
155154
if (itemFrame != null){

src/main/java/xyz/n7mn/dev/yululi/itemframeprotectionplugin/data/DataAPI.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ public FrameData getItemFrame(UUID itemFrameUUID){
6464

6565
}
6666

67+
public DropItemData getDropItemData(UUID dropItemUUID) {
68+
return drop.getDropItemData(dropItemUUID);
69+
}
70+
6771
public void addItemFrame(FrameData data){
6872

6973
item.addFrameData(data);
@@ -100,6 +104,14 @@ public void deleteTableByItem(UUID ItemUUID){
100104

101105
}
102106

107+
public long getCountByItemFrame(){
108+
return item.getCount();
109+
}
110+
111+
public long getCountByDropItem(){
112+
return drop.getCount();
113+
}
114+
103115
public void cacheClearByFrame(){
104116

105117
item.forceCacheToSQL();
@@ -121,4 +133,5 @@ public String getCacheCount(){
121133
return "Item : " + item.getCacheCount() +" Drop : " + drop.getDropCacheCount();
122134
}
123135

136+
124137
}

src/main/java/xyz/n7mn/dev/yululi/itemframeprotectionplugin/data/DropItemList.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,43 @@ public List<DropItemData> getDropItemDataList() {
213213
}
214214
}
215215

216+
public DropItemData getDropItemData(UUID dropItemUUID){
217+
try {
218+
PreparedStatement statement = con.prepareStatement("SELECT * FROM ItemFrameTable2 WHERE DropItemUUID = ?");
219+
statement.setString(1, dropItemUUID.toString());
220+
ResultSet set = statement.executeQuery();
221+
if (set.next()){
222+
223+
DropItemData data = new DropItemData();
224+
data.setDropItemUUID(UUID.fromString(set.getString("DropItemUUID")));
225+
data.setWorldUUID(UUID.fromString(set.getString("WorldUUID")));
226+
data.setDropUser(UUID.fromString(set.getString("DropUser")));
227+
data.setDropDate(new Date(set.getTimestamp("DropDate").getTime()));
228+
229+
set.close();
230+
statement.close();
231+
return data;
232+
}
233+
234+
synchronized (dropItemDataList){
235+
236+
for (DropItemData data : dropItemDataList){
237+
if (data.getDropItemUUID().equals(dropItemUUID)){
238+
return data;
239+
}
240+
}
241+
242+
}
243+
} catch (Exception e){
244+
if (plugin.getConfig().getBoolean("errorPrint")){
245+
plugin.getLogger().info(ChatColor.RED + "エラーを検知しました。");
246+
e.printStackTrace();
247+
}
248+
}
249+
250+
return null;
251+
}
252+
216253

217254
public void addDropItemDataList(DropItemData data){
218255

@@ -274,4 +311,32 @@ public int getDropCacheCount(){
274311
}
275312
}
276313

314+
315+
public long getCount(){
316+
317+
long count = 0;
318+
319+
synchronized (dropItemDataList){
320+
count = count + dropItemDataList.size();
321+
}
322+
323+
try {
324+
PreparedStatement statement = con.prepareStatement("SELECT COUNT(*) FROM ItemFrameTable2;");
325+
ResultSet set = statement.executeQuery();
326+
if (set.next()){
327+
328+
count = count + set.getLong("COUNT(*)");
329+
330+
set.close();
331+
statement.close();
332+
return count;
333+
}
334+
335+
} catch (SQLException e){
336+
return count;
337+
}
338+
339+
return count;
340+
}
341+
277342
}

src/main/java/xyz/n7mn/dev/yululi/itemframeprotectionplugin/data/ItemFrameList.java

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void forceCacheToSQL(){
152152
}
153153

154154
public List<FrameData> getFrameDataList(){
155-
List<FrameData> dataList = new ArrayList<>();
155+
List<FrameData> dataList = new ArrayList<>(Math.toIntExact(this.getCount()));
156156

157157
synchronized (frameDataList){
158158
if (frameDataList.size() != 0){
@@ -191,7 +191,7 @@ public List<FrameData> getFrameDataList(){
191191

192192
public List<FrameData> getFrameDataListByActive() {
193193

194-
List<FrameData> dataList = new ArrayList<>();
194+
List<FrameData> dataList = new ArrayList<>(Math.toIntExact(this.getCount()));
195195

196196
try {
197197
PreparedStatement statement = con.prepareStatement("SELECT * FROM ItemFrameTable1 WHERE Active = 1");
@@ -291,7 +291,17 @@ public void addFrameData(FrameData data){
291291

292292
public void deleteFrameData(UUID itemFrameUUID){
293293

294-
this.forceCacheToSQL();
294+
synchronized (frameDataList){
295+
for (FrameData data : frameDataList){
296+
297+
if (data.getItemFrameUUID().equals(itemFrameUUID)){
298+
299+
frameDataList.remove(data);
300+
return;
301+
}
302+
303+
}
304+
}
295305

296306
try {
297307

@@ -308,4 +318,31 @@ public void deleteFrameData(UUID itemFrameUUID){
308318
}
309319

310320
}
321+
322+
public long getCount(){
323+
324+
long count = 0;
325+
326+
synchronized (frameDataList){
327+
count = count + frameDataList.size();
328+
}
329+
330+
try {
331+
PreparedStatement statement = con.prepareStatement("SELECT COUNT(*) FROM ItemFrameTable1;");
332+
ResultSet set = statement.executeQuery();
333+
if (set.next()){
334+
335+
count = count + set.getLong("COUNT(*)");
336+
337+
set.close();
338+
statement.close();
339+
return count;
340+
}
341+
342+
} catch (SQLException e){
343+
return count;
344+
}
345+
346+
return count;
347+
}
311348
}

0 commit comments

Comments
 (0)